Мне очень любопытно, если возврат ссылки из метода может вызвать утечку памяти. Ниже приведен пример ситуации.
class example
{
public:
vector<int> & get_vect()
{
return vect;
}
int & get_num()
{
return num;
}
private:
vector<int> vect;
int num;
};
void test_run(example & input)
{
int & test_val = input.get_num();
vector<int> & test_vect = input.get_vect();
}
int main()
{
example one;
test_run(one);
return 0;
}
Мой вопрос в том, когда test_val
и test_vect
удаляются из стека, когда test_run
завершается. Удаляется ли test_vect
или test_val
, что приводит к повреждению объекта?