这是我创建的课程:
class A{
private:
// some private data members:
// 2 const integers
// 2 integers
// 2 const strings
public:
// C'tor
// D'tor
void f(const A&);
}
Run Code Online (Sandbox Code Playgroud)
在构造该类的每个对象时,没有(显式)动态分配,只有"原始"类型分配.(没有明确的动态分配,我的意思是除了字符串类处理内存之外).
当我尝试这个:
void f(const A& item){
// do some thing
*this = item;
// do other stuff
}
Run Code Online (Sandbox Code Playgroud)
我得到以下错误:"使用已删除的函数'A&A :: operator =(const A&)'"
现在我知道编译器应该为我提供一个默认的赋值运算符,我的问题是:为什么编译器将它的默认赋值运算符称为删除函数?如何在不手动分配所有数据成员函数的情况下解决此问题?
非常感谢!加尔