違い
コピーコンストラクタを呼び出し
Teacher t2 = t1; //类类型,复制初始化时调用拷贝构造函数,直接初始化调用对应构造函数
代入演算子を呼び出します
Teacher t2;
t2 = t1;
コピーコンストラクタ
単一のパラメータ、およびパラメータの型は、クラス(修飾定数CONST)コンストラクタの参照型であります
class Test{
public:
Test(){
data = 0;
}
Test(int d):data(d){
}
~Test(){
}
Test(const Test &test)
{
data = test.data;
}
private:
int data;
};
基準となるパラメータは、コンストラクタの呼び出しをコピーする場合
void func(const string &s1); //隐式调用string拷贝构造
代入演算子
class Test{
public:
Test(){
data = 0;
}
Test(int d):data(d){
}
~Test(){
}
//重载=号运算符
Test& operator= (const Test &t){
if(this != &t){ //防止自赋值
data = t.data;
}
return *this;
}
private:
int data;
};
コピーを禁止
プライベートコピーコンストラクタと代入演算子
class Test{
public:
Test(){
data = 0;
}
Test(int d):data(d){
}
~Test(){
}
private:
// 禁止拷贝
Test& operator= (const Test &);
Test(const Test&);
int data;
};