class Self_diy
{
private:
/* data */
public:
Self_diy(){std::cout << "无参构造" << std::endl;};
Self_diy(const Self_diy& sf){
std::cout << "拷贝构造" << std::endl;
};
Self_diy& operator=(const Self_diy& t){
std::cout << "赋值构造" << std::endl;
return *this;
}
};
int main(){
// 执行无参构造
Self_diy d;
// 执行拷贝构造
Self_diy c(d);
// 执行隐式拷贝构造
Self_diy uc = d;
// 执行赋值构造
Self_diy fz;
fz = d;
return 0;
}
class Self_diy
{
private:
/* data */
public:
Self_diy(){std::cout << "无参构造" << std::endl;};
explicit Self_diy(const Self_diy& sf){
std::cout << "拷贝构造" << std::endl;
};
Self_diy& operator=(const Self_diy& t){
std::cout << "赋值构造" << std::endl;
return *this;
}
};
int main(){
// 执行无参构造
Self_diy d;
// 执行拷贝构造
Self_diy c(d);
// 执行隐式拷贝构造 explicit关键字拒绝隐式构造
// Self_diy uc = d;
// 执行赋值构造
Self_diy fz;
fz = d;
return 0;
}