Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.

C++ i custom string

[es] :: C/C++ programiranje :: C++ i custom string

[ Pregleda: 1954 | Odgovora: 7 ] > FB > Twit

Postavi temu Odgovori

Autor

Pretraga teme: Traži
Markiranje Štampanje RSS

FantasticFour

Član broj: 267424
Poruke: 53
..106.109.adsl.dyn.beotel.net.



+10 Profil

icon C++ i custom string15.05.2011. u 08:46 - pre 157 meseci
Dugo ni ja nisam postavljao pitanja ovde pa ajd malo :) .

Pokusavam da napravim custom string klasu u c++ koja ce naslediti normani std::string

ali imam problem :(

kada pokusam kompajlirati dobijem

main.cpp: In function 'int main()':
main.cpp:8: error: conversion from 'const char [6]' to non-scalar type 'Stefy::String' requested
ovo je main.cpp
[CODE]
#include "/usr/include/sct/stefy_string.h"
#include <iostream>

using namespace std;
int main() {
Stefy::String s;
cin >> s;
Stefy::String t = "stefy";
if (s.contains(t))
cout << "EXTRA\n";
return 0;
}

[/CODE]

sct/stefy_string.h

[CODE]
#ifndef STEFY_STRING_H
#define STEFY_STRING_H

//#include <string>
#include "stefy_stdlib.h"

//namespace Stefy {
STEFY_NAMESPACE_BEGIN
class String : public std::string
{

public:
bool starts_with(std::string w);
bool ends_with(std::string w);
int diff(Stefy::String other);
int diff(const std::string& other);
bool contains(Stefy::String t);
//bool contains(std::string t);
};
//}
STEFY_NAMESPACE_END


#endif //STEFY_STRING_H

[/CODE]

i sct/stefy_string.cpp

[CODE]
#include "stefy_string.h"

bool Stefy::String::starts_with(std::string w)
{
return substr(0, w.size()) == w;
}

bool Stefy::String::ends_with(std::string w)
{
return substr(size() - w.size(), w.size()) == w;
}

int Stefy::String::diff(Stefy::String other)
{
Stefy::String c = other;
int min_size = 0;
int max_size = 0;
if (size() < c.size()) {
min_size = size();
max_size = c.size();
}
else {
min_size = c.size();
max_size = size();
}

int e = max_size - min_size;

for (int i = 0; i<min_size; i++)
{
if (at(i) != c.at(i))
e++;
}
return e;
}


/*int Stefy::String::diff(const std::string& other)
{
Stefy::String c = other;
int min_size = 0;
int max_size = 0;
if (size() < c.size()) {
min_size = size();
max_size = c.size();
}
else {
min_size = c.size();
max_size = size();
}

int e = max_size - min_size;

for (int i = 0; i<min_size; i++)
{
if (at(i) != c.at(i))
e++;
}
return e;
}*/

bool Stefy::String::contains(Stefy::String t)
{
std::string o = t.c_str();
int s = o.size();

for (int i = 0; i + s <= size(); i++)
{
if (substr(i, s) == o)
{
return true;
}
}

return false;
}


/*bool Stefy::String::contains(std::string t)
{
int s = t.size();

for (int i = 0; i + s <= size(); i++)
{
if (substr(i, s) == t)
{
return true;
}
}

return false;
}*/

[/CODE]

u cemu je problem ????
 
Odgovor na temu

karas

Član broj: 5574
Poruke: 482
*.dynamic.sbb.rs.



+1 Profil

icon Re: C++ i custom string15.05.2011. u 13:03 - pre 157 meseci
Programer koji nije pravio svoju string klasu u C++ i nije stvarno programirao.:-D
Ajde stavi kod koji radi, sta ti je npr. fajl stefy_stdlib.h? Ovako sto mi prvo pada na pamet je da ne moze da pozove konstruktor za const char*.
Sveti Avgustin: "Dobar hrišćanin treba da se kloni matematičara i svih onih koji daju lažna proročanstva. Postoji opasnost da su matematičari već sklopili pakt sa Đavolom, da pomrače čovekov um i da ga okuju okovima pakla."
 
Odgovor na temu

Nedeljko
Nedeljko Stefanović

Član broj: 314
Poruke: 8632
212.200.65.*



+2789 Profil

icon Re: C++ i custom string15.05.2011. u 15:02 - pre 157 meseci
Pa, naravno da ne može kad ga i nema.
Nije bitno koji su zaključci izvučeni, već kako se do njih došlo.
 
Odgovor na temu

karas

Član broj: 5574
Poruke: 482
*.dynamic.sbb.rs.



+1 Profil

icon Re: C++ i custom string15.05.2011. u 15:38 - pre 157 meseci
Sto ce reci da bi mogao da ubaci takav konstruktor koji bi samo pozvao std::string(const char*). Ne bi bilo lose da to uradi za ostale.
Sveti Avgustin: "Dobar hrišćanin treba da se kloni matematičara i svih onih koji daju lažna proročanstva. Postoji opasnost da su matematičari već sklopili pakt sa Đavolom, da pomrače čovekov um i da ga okuju okovima pakla."
 
Odgovor na temu

kiklop74
Darko Miletić
Buenos Aires

Član broj: 78422
Poruke: 569
*.telecentro-reversos.com.ar.

Sajt: ar.linkedin.com/pub/darko..


+13 Profil

icon Re: C++ i custom string15.05.2011. u 17:16 - pre 157 meseci
Klase standardne c++ biblioteke generalno nisu dizajnirane za nasledjivanje (ima izuzetaka). Zato nijedna nema virtualni destruktor.

Videti o tome ovde:

http://www.parashift.com/c++-faq-lite/virtual-functions.html

[20.7] When should my destructor be virtual?

Citat:

...
In particular, here's when you need to make your destructor virtual:

if someone will derive from your class,
and if someone will say new Derived, where Derived is derived from your class,
and if someone will say delete p, where the actual object's type is Derived but the pointer p's type is your class.
....


A i ovo:

http://en.allexperts.com/q/C-1...ssible-inherit-classes-STL.htm

Naravno ti i dalje mozes to da uradis i u vecini slucajeva ce da radi ali ipak je bolja cista situacija.
Tko leti vrijedi
 
Odgovor na temu

FantasticFour

Član broj: 267424
Poruke: 53
212.178.230.*



+10 Profil

icon Re: C++ i custom string15.05.2011. u 18:43 - pre 157 meseci
Hvala svima na odgovorima.

Hehehehehe tek sad sam primetio da nemam konstruktor :D .

Znaci kad nasledjujem klasu neku ne nasledjuju se konstruktori i desktruktori vec samo funkcije :) Eto to nisam znao i danas sam nesto novo naucio :) ....

Inace izvinjavam se za los prvi posto sto se koda tice.
 
Odgovor na temu

Mihajlo Cvetanović
Beograd

Moderator
Član broj: 37636
Poruke: 1249



+96 Profil

icon Re: C++ i custom string16.05.2011. u 09:31 - pre 157 meseci
Koja ti tačno funkcionalnost nedostaje u std::string?
 
Odgovor na temu

karas

Član broj: 5574
Poruke: 482
*.dynamic.sbb.rs.



+1 Profil

icon Re: C++ i custom string16.05.2011. u 10:53 - pre 157 meseci
@FantasticFour
http://www.cplusplus.com/doc/tutorial/inheritance/ odeljak What is inherited from the base class?
Sveti Avgustin: "Dobar hrišćanin treba da se kloni matematičara i svih onih koji daju lažna proročanstva. Postoji opasnost da su matematičari već sklopili pakt sa Đavolom, da pomrače čovekov um i da ga okuju okovima pakla."
 
Odgovor na temu

[es] :: C/C++ programiranje :: C++ i custom string

[ Pregleda: 1954 | Odgovora: 7 ] > FB > Twit

Postavi temu Odgovori

Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.