c++中删除函数的使用

use of deleted functions in c++

本文关键字:函数 删除 c++      更新时间:2023-10-16

这是我创建的一个类:

class A{  
private:  
    // some private data members:  
    // 2 const integers  
    // 2 integers  
    // 2 const strings  
public:  
    // C'tor  
    // D'tor  
void f(const A&);  
}

在构造该类的每个对象时,没有(显式的)动态分配,只有"原始"类型赋值。(我所说的不显式动态分配是指除了字符串类处理内存的方式之外)。

当我尝试这个:

void f(const A& item){  
    // do some thing  
*this = item;  
    // do other stuff  
}

我得到以下错误:"删除函数的使用"A&A::operator=(const A&)' "

现在我知道编译器应该为我提供一个默认的赋值操作符,我的问题是:为什么编译器指它的默认赋值操作符作为一个删除的函数?如何在不手动分配所有数据成员函数的情况下解决这个问题?

非常感谢!加

因为您有const成员。