c++中删除函数的使用
use of deleted functions in c++
这是我创建的一个类:
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
成员。
相关文章:
- 如何通过 getter 函数删除矢量的元素?
- C++类析构函数删除成员(如果"owner"?
- 使用私有析构函数删除动态分配的对象
- C ++(为什么)确实移动构造函数删除运算符=
- 析构函数删除错误的元素
- C++ 类析构函数删除部分但不是全部成员数据
- 如何使用 deleteEntry 函数 c++ 删除数组中的单个字符串
- 仅仅以避免隐式复制构造函数删除,使用shared_ptr而不是unique_ptr作为类成员明智
- 析构函数删除在 main 中声明的动态数组
- 如果未分配申报表,是否需要删除或处理动态数组?还是它被函数删除
- C++ 函数删除一行
- g++空函数删除是否递归工作
- C++析构函数删除东西(对象,指针?)太快
- C++析构函数删除包含动态数组作为数据成员的对象时的用法
- C++11 析构函数 = 删除
- 父类析构函数删除具有外部启动元素的子类
- 函数删除太多
- C++析构函数删除共享内存
- C++,如何让此函数删除存储在数组中的字符串
- 析构函数删除数组时出错