7

作成されてメンバー変数ベクトルに追加されたばかりのベクトル内の要素へのポインターを保持する最良の方法を見つけようとしています。

  SceneGraphNode* addChild(std::string name){
    SceneGraphNode child(this,name);
    m_children.push_back(child);
    return &child;
}

スタック上に作成されたオブジェクトのアドレスを返しているため、コンパイラは正当に警告を発し、そのオブジェクトは関数が終了するとスコープ外になります。しかし、オブジェクトは の中で生き続けvectorますよね?

それで、警告を無視する必要がありますか、それともこれを行うためのより良い方法はありますか?

4

4 に答える 4