次のコードを検討してください。
class class1
{
public:
class1() : _cancel(false) { }
private:
bool _cancel;
}
class class2
{
public:
class1 obj1;
}
class class3
{
void addClass2(class2 _obj2) {
this->obj2.push_back(_obj2);
}
private:
std::vector<class2> _obj2;
}
そしてそれを他のファイルに使用する
void Init()
{
class2 object2;
class3 object3;
object3.addClass2(object2);
}
ここの_cancel
class1 の は false に初期化されませんでした
しかし、私はこれでここで問題を解決します:
//class3
void addClass2(class2 _obj2) {
this->_obj2.push_back(std::move(_obj2));
}
私はその行動と混同しています。知っておくべきことはあります std::vector::push_back
か?
編集
私のコードのコピーをここに持ってこなかったことをお詫びします。インターネットに接続していないため、自分のコンピューターを使用していません
上記の class3 の実装は間違っています。これが新しいものです
//class3
class class3
{
public:
void addClass2(std::vector <class2> _obj) {
this->_obj = _obj;
}
}