C++ 类的复制赋值运算符 #包括 使用名称空间std; 甲级 { 常数INTA; int b,c; 公众: a类(整数x,整数y):a(10) { b=x; c=y; } ClassA():a(10) { } 作废打印() { cout
案例2是这样的:C++ 类的复制赋值运算符 #包括 使用名称空间std; 甲级 { 常数INTA; int b,c; 公众: a类(整数x,整数y):a(10) { b=x; c=y; } ClassA():a(10) { } 作废打印() { cout,c++,copy-assignment,C++,Copy Assignment,案例2是这样的: #include <iostream> using namespace std; class ClassA { const int a; int b, c; public: ClassA(int x, int y):a(10) { b = x; c = y; } ClassA():a(10) { } void print() { cout <
#include <iostream>
using namespace std;
class ClassA
{
const int a;
int b, c;
public:
ClassA(int x, int y):a(10)
{
b = x;
c = y;
}
ClassA():a(10)
{
}
void print()
{
cout << a << endl;
}
};
int main()
{
ClassA objA(10, 20);
ClassA objB;
objB = objA;
objB.print();
return 0;
}
案例3类似于:
class non_assignable {
// note: private
non_assignable &operator=(non_assignable const &source);
};
class whatever {
non_assignable n;
};
在任何一种情况下,都不会自动为
任何内容生成复制分配操作符,因为它包含一个不可分配的成员/子对象,该成员/子对象具有一个不可访问的(私有)复制分配操作符。这几乎是一个副本(参见案例3中aschepler的答案)。
class whatever : public non_assignable {};