t_vec
class のインスタンスへの参照を格納するベクトルがあります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;
}