#include <iostream>
class CA
{
public:
CA(int i=10)
{
m_i=i;
std::cout<<"执行构造函数:m_i="<<m_i<<std::endl;
}
~CA()
{
std::cout<<"执行虚构函数:m_i="<<m_i<<std::endl;
}
CA(const CA& ca)
{
m_i=ca.m_i;
std::cout<<"执行拷贝构造函数:m_i="<<m_i<<std::endl;
}
CA& operator *(const CA& ca)
{
m_i=ca.m_i;
std::cout<<"执行拷贝构造函数:m_i="<<m_i<<std::endl;
}
protected:
int m_i;
};
int main()
{
CA a(20);
{
CA b=a;
}
{
CA b;
b=a;
}
{
CA &b=a;
}
return 0;
}
结果: