Jestem bardzo ciekawy, czy zwrócenie referencji z metody może spowodować wyciek pamięci. Poniżej znajduje się przykładowa sytuacja.Czy metody, które zwracają odniesienie do const lub odwołania, powodują przecieki pamięci?
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;
}
Moje pytanie brzmi: kiedy test_val
i test_vect
zostaną usunięte ze stosu, gdy test_run
wyjść. Czy usunięto test_vect
lub test_val
, powodując uszkodzenie obiektu?
Wyciek pamięci może wystąpić tylko wtedy, gdy zaangażowany jest dynamiczny przydział pamięci. – Angew