C++ Primer 学习笔记 ― 复制控制(二)
容易导致内存泄漏问题。因此应将动态对象的释放写入到析构函数中去。
四.例子
理解复制控制成员和构造函数的一个方法就是定义一个简单类,下面程序有助于我们理解复制控制中的基本概念,帮助我们理解何时执行哪个构造函数和复制控制成员,
[cpp]
#include
#include
using namespace std;
class Exmpl
{
public:
Exmpl()
{
cout << "Exmpl()" << endl;
}
Exmpl(const Exmpl&)
{
cout << "Exmpl(const Exmpl&)" << endl;
}
Exmpl& operator = (const Exmpl& rhs)
{
cout << "operator = (const Exmpl&)" << endl;
return *this;
}
~Exmpl()
{
}
};
void fun1(Exmpl obj)
{
}
void fun2(Exmpl& obj)
{
}
Exmpl fun3()
{
Exmpl obj;
return obj;
}
int main()
{
Exmpl eobj;//①
cout << endl;
fun1(eobj);//②
cout << endl;
fun2(eobj);//③
cout << endl;
eobj = fun3();//④
cout << endl;
Exmpl *p = new Exmpl;//⑤
cout << endl;
vector evec(3);//⑥
cout << endl;
delete p;//⑦
cout << endl;
return 0;//⑧
}