#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;
}
次の場合、コンパイラはコピー代入演算子を作成しません。
- クラスに、const 型または参照型の非静的データ メンバーがあります。
- クラスには、アクセスできないコピー代入演算子を持つ型の非静的データ メンバーがあります。
- クラスは、アクセスできないコピー代入演算子を持つ基底クラスから派生しています。
上記のケースでは、上記の例でケース1を理解しました。しかし、ケース2とケース3が得られないので、例を挙げて理解してください。