Wysyłanie oraz pobieranie z metody

0
#include <iostream>
#include <string.h>
 
using namespace std;
 
class Ttekst{
private:
        string _t;
public:
        void wpisz(string t)(_t=t;)
        string pobierz(){return _t;}
Ttekst() {_t="nic";}
~Ttekst(){}
};
 
 
int main()
{
        Ttekst O1, O2;
        string txt;
        cin>>txt;
        O1.wpisz(txt);
        O2.wpisz(O2.pobierz()+O1.pobierz());
        cout<<O2.pobierz()<<endl;
        cin.get();
 
 return 0;
}

Witam, powyższy kod wyrzucił mi aż 14 błędów, znaczenia których nie bardzo rozumiem, czy mógłby ktoś to przeanalizować ?
Użytkownik podaje tekst który jest wysłany do metody wpisz, doklejany do tekstu O2 i zwracany.

4

Używaj nagłówka string, string.h nie musi posiadać definicji klasy std::string. Ponadto ciało funkcji umieszcza się w blokach {} a nie (). Po poprawieniu tych błędów działa: http://ideone.com/IGJckF

Jeśli chcesz zwrócić istniejącą wartość stringa bez jej zmiany, zwrócenie const referencji zamiast kopii jest znacznie bardziej sensowne.

1

Przyjmowanie, a szczególnie zwracanie stringa przez kopię jest niezbyt wydajne, powinieneś to robić przez const referencję

Z tym muszę się nie zgodzić.

Zwracanie referencji to de facto zwracanie wskaźnika na zmienną tymczasową.

Prawidłowy sposób zwracania stringa (i każdej innej klasy) to string. nie const string, nie string& i nie string*.

1 użytkowników online, w tym zalogowanych: 0, gości: 1