русский
Germany.ruForen → Архив Досок→ Programmierung

C++ Frage zur Speicherverwaltung

18.12.08 16:26
Re: C++ Frage zur Speicherverwaltung
 
evgher постоялец
evgher
in Antwort femidav 17.12.08 17:04, Zuletzt geändert 18.12.08 16:39 (evgher)
In Antwort auf:
А вот такого лучше не делать. Если getter отдаёт сишный стринг, то это вызывает неопределённость в вопросе владения оным. Клиент может засомневаться: надо ли мне его уничтожать, или не надо? В итоге кто-нибудь, когда-нибудь его освободит, и вы получите красивенький такой баг. Лучше было бы отдать константную ссылку: std::string const& Options::getActionField();

Я думаю, что здесь вы не совсем правы.
ms_address_field является мембер-переменной - указателем.
Уничтожение оной будет предпринято только при вызове деструктора - до этого ничего
и не должно освобождаться. Константная ссылка имеет смысл если речь шла о
ссылке, которую - как вы уже правильно приметили - клиент в контексте программы мог бы (он не может (из-за приват)) внезапно освободить.
 

Sprung zu