c++ - 在 C++ 中使用已删除的函数

标签 c++ eclipse

这是我创建的一个类:

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 成员。它们无法赋值给,因此编译器无法提供赋值运算符。

关于c++ - 在 C++ 中使用已删除的函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17124780/

相关文章:

c++ - 在文本中搜索多个字符串之一的有效算法?

c++ - 运行函数 GetVolumeInformation() 时我得到非常随机的结果

eclipse - 重新索引存储库循环 - 不是 Maven

Eclipse IDE : SGML plugin?

无法让 orcc 代码在 Visual Studio 2010 中使用 C 后端运行

c++ - QMutexLocker : "QMutex pointer is misaligned", 中的 QThread ASSERT 失败

c++ - Qt 图形被另一个遮挡,但仍然导致绘图更新

c++ - 如何在C++中模拟按住键盘按钮

java - Java中如何调用文件内的公共(public)函数?

java - 如何使用Log4j为jsp页面创建日志文件