Код:
class Class
{
public:
std::string get_str( void ) const
{
return str;
}
private:
std::string str;
};
1. Стоит ли в функции get_str возвращать не std::string а std::string& или вообще const std::string&
Как я понимаю, в основной программе будет переменная ссылаться на class.str, и после удаления
переменной class ссылка станет недействительной. Но с другой стороны это будет быстрее, и отпадёт второй вопрос.
2. Если я поставлю throw() в спецификации функции, будет ли это правильно? Т.е. если не будет хватать памяти и
вызовется std::bad_alloc в конструкторе или операторе копирования строки, будет ли это исключение считаться
исключением функции, ведь по сути тело функции выполняется без ошибок.