У меня есть вектор t_vec
, в котором хранятся ссылки на экземпляры класса Too
. Код показан ниже. В main
у меня есть вектор t_vec_2, который имеет тот же адрес памяти, что и B::t_vec
.
Но когда я пытаюсь получить доступ к t_vec_2 [0] .val1, выдается ошибка val1 not declared
.
Не могли бы вы указать, что не так? Кроме того, если вы знаете лучший способ вернуть вектор из метода, пожалуйста, дайте мне знать! Заранее спасибо.
class Too {
public:
Too();
~Too(){};
int val1;
};
Too::Too(){
val1 = 10;
};
class B {
public:
vector<Too*> t_vec;
Too* t1;
vector<Too*>& get_tvec();
B(){t1 = new Too();};
~B(){delete t1;};
};
vector<Too*>& B::get_tvec(){
t_vec.push_back(t1);
return t_vec;
}
int main(){
B b;
b = B();
vector<Too*>& t_vec_2 = b.get_tvec();
// Getting error
std::cout << "\n val1 = " << t_vec_2[0].val1;
return 0;
}