这是我代码的一部分...
//samlple.h........
class Manager{
public:
Manager(cmd::Processor *cp);
virtual ~Manager(void);
protected:
cmd::Processor *m_Processor;
}; //samlple.cpp........
//Default constructor
Manager::Manager(
cmd::Processor *cp
) : m_commandProcessor(cp)
{
g_MgrCommand = new MgrCommand(this);
} 运行此命令后,我收到以下警告:
Sample.cpp(97):Info 1732:没有赋值运算符的类“Manager”的构造函数中有新内容........
我是c++编码的新手。
您能告诉我如何为我的类编写复制构造函数和赋值运算符来删除此警告吗
发布于 2014-01-17 20:48:53
您可以声明一个operator=成员函数:
Manager& Manager::operator=(const Manager&) {
// ...
return (*this);
}当然,函数的第一个参数可以是您想要的任何值。
发布于 2014-01-17 20:50:33
您不必实现复制c‘to /赋值。
关键是,除非您自己实现它们,否则编译器会通过成员复制自动实现它们。在您的特定情况下,这个自动生成的代码将是不正确的,因为您将有几个对象指向相同的已分配MgrCommand。
您应该正确地实现C‘’tor/assignment运算符(可能是通过在每个对象中分配一个单独的MgrCommand实例),或者禁用它们。
https://stackoverflow.com/questions/21186334
复制相似问题