Tips: 软件工程知识
可以阻止类的一个对象赋值给另一个对象,只要把赋值运算符声明为这个类的private成员即可达到此目的。
可以阻止对象的复制,要达到此目的,只需把这个类重载的赋值运算符和复制构造函数声明为private。
1.
#include <cstdio>
#include <iostream>
using namespace std;
class A{
public:
A(int b) :a(b){
}
private:
A(const A &b){
a = b.a;
}
private:
int a;
};
int main(){
A d(4);
A b = d;
return 0;
}
会报错,错误提示如下:
#include <cstdio>
#include <iostream>
using namespace std;
class A{
public:
A(int b) :a(b){
}
private:
A(const A &b){
a = b.a;
}
private:
int a;
};
int main(){
A d(4);
A b(d);
return 0;
}
会报错,错误提示如下:
1.2 证明了在一个类的实例在定义的时候使用格式:
Timer a;
Timer a(b); / Timer a = b;
调用的都为复制构造函数。