Witajcie, mam pewien problem. Oto mój kod, klasa:
class napis
{
public:
char *ss;
int ile;
public:
napis(char *arg="");
friend ostream & operator<<(ostream & wypisz, const napis & n);
friend napis operator+(napis n1, napis n2);
};
takie metody:
napis::napis(char *arg)
{
ss=arg;
ile=strlen(arg);
}
//------------------------------------------------------------------------------
ostream & operator<<(ostream & wypisz, const napis & n)
{
wypisz<<n.ss;
return wypisz;
}
//------------------------------------------------------------------------------
napis operator+(napis n1, napis n2)
{
napis suma;
suma.ile=n1.ile+n2.ile;
char w[suma.ile+1];
strcpy(w, n1.ss);
strcat(w, n2.ss);
suma.ss=w;
return suma;
}
i mam pewien problem, z operatorem +, nie działa on poprawnie. Tzn do momentu skopiowania do tymczasowej tablicy char w jest ok, problem się zaczyna, gdy przypisuje do suma.ss=w, nie wiem dlaczego? Jedyne co mi przychodzi na myśl to ten konstruktor domniemany przy dekleracji napis suma, tam wpisuje do wskaźnika pusty string...Proszę o rady.