スピードの理由から、私はポインタを使ってオブジェクトを渡してきました。しかし、オブジェクト内のオブジェクトのメンバ変数にアクセスしようとすると、プログラムがクラッシュしてしまいます。私が得意でないものがありますか?C++ポインタを介してネストされたオブジェクトのメンバーにアクセス
/*
ClassA
- ObjectB
--Member X
*/
class A
{
int x;
}
class B
{
A* obj; // initialized in constructor
B();
func();
}
B::B(std::vector<A> vectorA)
{
this->obj = &(vectorA.at(0))
}
B::func()
{
A* pointerA = this->obj
std::cout << pointerA->x << std::endl; // causes crash
}
_'A * obj; //コンストラクタで初期化された '_どのように正確に?投稿[MCVE]してください。 –
「スピードの理由から...」ポインタが高速であることを確信していますか?あなたのコンパイラはそうは思わないでしょう。 – tadman
'this-> obj =&(vectorA.at(0));'注意しないと、これは恐ろしく危険です。あなたのポインタは、Cromが指し示すことになるでしょう。 – user4581301