复制构造函数不工作? 对OOP有点新,即C程序员转换为C++,无法理解为什么我的背包类中的数据成员是空的。我将一系列药剂传递到我的背包,但数据成员说mType=即无
我以前从未在一个节目中感觉到这一点。开始讨厌OOP,即开玩笑……但这非常令人沮丧 main.cpp 药水 背包复制构造函数不工作? 对OOP有点新,即C程序员转换为C++,无法理解为什么我的背包类中的数据成员是空的。我将一系列药剂传递到我的背包,但数据成员说mType=即无,c++,oop,copy-constructor,C++,Oop,Copy Constructor,我以前从未在一个节目中感觉到这一点。开始讨厌OOP,即开玩笑……但这非常令人沮丧 main.cpp 药水 背包 如果实现了复制构造函数和复制赋值运算符,那么实际上必须实现复制。不会为您执行此操作。您的复制构造函数不会执行任何复制: //Copy constructor BackPack::BackPack(const BackPack & copy) { std::cout << "Backpack's copy constructor. " << std::en
如果实现了复制构造函数和复制赋值运算符,那么实际上必须实现复制。不会为您执行此操作。您的复制构造函数不会执行任何复制:
//Copy constructor
BackPack::BackPack(const BackPack & copy)
{
std::cout << "Backpack's copy constructor. " << std::endl;
}
您的复制分配操作员也不会:
//Overloaded assignment operator
BackPack &BackPack::operator=(const BackPack & rhs)
{
std::cout << "Backpack's assignment operator. " << std::endl;
return *this;
}
一旦提供了自己的复制构造函数和复制赋值运算符,编译器生成的复制构造函数和复制赋值运算符将被抑制。如果你需要做一些复制,你必须实现它
这当然适用于所有类。调用复制构造函数时,当然必须将值分配给要创建的对象
Potion::Potion(const Potion & copy)
{
//assign the elements from copy to your object here
std::cout << "Potion's copy constructor " << std::endl;
}
复制构造函数不会为您执行此操作。请尝试将字段从副本复制到该副本中。
//Copy constructor
BackPack::BackPack(const BackPack & copy)
{
std::cout << "Backpack's copy constructor. " << std::endl;
}
//Overloaded assignment operator
BackPack &BackPack::operator=(const BackPack & rhs)
{
std::cout << "Backpack's assignment operator. " << std::endl;
return *this;
}
Potion::Potion(const Potion & copy)
{
//assign the elements from copy to your object here
std::cout << "Potion's copy constructor " << std::endl;
}