C++にはまったく新しいので、これはおそらく本当にばかげた質問です。 read_models()
とproc_models()
の両方でアクセスするcube_normals
ポインタが必要です。read_models()
を呼び出すたびにポインタを初期化する必要があります。私は何ができるのメンバ関数内クラスメンバであるスマートポインタを初期化するにはどうすればよいですか?
:
PointCloud<A>::Ptr cube_normals (new PointCloud<A>);
私は他の関数へのポインタを渡すことができますが、私はこの問題を解決するためのクリーンな方法を使用して、そのおそらくないです12個の、このようなポインタがあります。
これはコードスニペットです。前もって感謝します!
class preproc
{
public:
preproc();
~preproc();
PointCloud<A>::Ptr cube_normals;
void read_models();
void proc_models();
private:
ros::NodeHandle nh;
ros::NodeHandle nh_priv;
};
'read_models()'と 'proc_models()'は同じクラスのメソッドなので、同じクラスのメンバーである 'cube_normals'にアクセスする特別なことはありません。彼らはそれがローカル変数であるかのようにアクセスします。あなたの質問は不明です。 C++の基本を完全に理解していない場合、最良の答えは、C++の本を読んだり、提示された資料を理解し続けることです。 –
他のスマートポインタはすべて 'PointCloud :: Ptr'のクラスですか、' A'ではなく異なるタイプですか? –
'cube_normals'をどのようにリセットして新しいオブジェクトを指し示すかを尋ねるなら、それは' cube_normals.reset(new PointCloud ) ' –