class ConvType
{
int aa =5;
public :
ConvType(int a)
{
aa= a;
std::cout<<"默认构造函数aa ="<<a<<std::endl;
};
~ConvType()
{
std::cout<<"默认析构函数aa ="<<aa<<std::endl;
}
ConvType(const ConvType &)
{
std::cout<<"默认拷贝构造函数aa ="<<aa<<std::endl;
}
ConvType & operator =(const ConvType &)
{
std::cout<<"默认重载赋值运算符函数aa ="<<aa<<std::endl;
}
ConvType * operator &()
{
std::cout<<"默认重载取址运算符函数aa ="<<aa<<std::endl;
}
ConvType(ConvType &&b)
{
std::cout<<"默认移动构造函数aa ="<<b.aa<<std::endl;
}
ConvType & operator =(const ConvType &&)
{
std::cout<<"默认重载移动赋值操作符函数aa ="<<aa<<std::endl;
}
};
******************如何触发这些函数的调用呢***********************
默认构造函数与默认析构函数
auto p1 = new ConvType();
delete p1;
默认拷贝构造函数
ConvType a(11) ;
ConvType nb = a;
默认重载赋值运算符函数
ConvType a(11) ;
ConvType nb(6);
nb = a;
默认重载取址运算符函数
ConvType a(11) ;
auto p1 = &a;
默认移动构造函数
ConvType a(11) ;
auto p1 = std::move(a);
默认重载移动赋值操作符函数
ConvType a(11) ;
ConvType b(1) ;
b = std::move(a);