Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/137.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
复制构造函数不工作? 对OOP有点新,即C程序员转换为C++,无法理解为什么我的背包类中的数据成员是空的。我将一系列药剂传递到我的背包,但数据成员说mType=即无_C++_Oop_Copy Constructor - Fatal编程技术网

复制构造函数不工作? 对OOP有点新,即C程序员转换为C++,无法理解为什么我的背包类中的数据成员是空的。我将一系列药剂传递到我的背包,但数据成员说mType=即无

复制构造函数不工作? 对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

我以前从未在一个节目中感觉到这一点。开始讨厌OOP,即开玩笑……但这非常令人沮丧

main.cpp

药水

背包


如果实现了复制构造函数和复制赋值运算符,那么实际上必须实现复制。不会为您执行此操作。

您的复制构造函数不会执行任何复制:

//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;
}