私は現在のコードを持っています:
class ImagePoint {
private:
int row;
int col;
public:
ImagePoint(int row, int col){
this->row = row;
this->col = col;
}
int get_row(){
return this->row;
}
int get_col(){
return this->col;
}
};
そして、私はこれをしたい:
class TrainingDataPoint{
private:
ImagePoint point;
public:
TrainingDataPoint(ImagePoint image_point){
this->point = image_point;
}
};
ただし、この行ではクラスに空のコンストラクターがImagePoint point;
必要であるため、これはコンパイルされません。ImagePoint
(私が読んだことから)別の方法では、ポインターを使用する必要があると言われています。
class TrainingDataPoint{
private:
ImagePoint * point;
public:
TrainingDataPoint(ImagePoint image_point){
this->point = &image_point;
}
};
しかし、コンストラクターの実行が終了すると、このポインターはクリアされたオブジェクトを指しますか? もしそうなら、私はのコピーを作成する必要がありimage_point
ますか? これにはコピーコンストラクターが必要ですか?