理解复制控制成员和构造函数--实例
来源:互联网 发布:c语言 贪心 编辑:程序博客网 时间:2024/05/23 21:01
#include<iostream>
#include<vector>
using namespace std;
class Exmpl
{
public:
//默认构造函数
Exmpl()
{
cout << "Exmpl()" << endl;
}
//复制构造函数
Exmpl (const Exmpl&)
{
cout << "Exmpl(const&)" << endl;
}
//赋值操作符
Exmpl& operator = (const Exmpl &abc)
{
cout << "operator = (const Exmpl&)" << endl;
return *this;
}
//析构函数
~Exmpl()
{
cout << "~Exmpl()" << endl;
}
};
void func1(Exmpl obj)
{
}
void func2(Exmpl& obj)
{
}
Exmpl func3()
{
Exmpl obj;
return obj; //返回Exmpl对象
}
int main()
{
Exmpl cobj;//调用默认构造函数创建Exmpl对象cobj
func1(cobj);//调用复制构造函数
//将形参Exmpl对象创建为实参Exmpl对象的副本
//函数执行完毕后调用析构函数撤销形参的Exmpl对象
func2(cobj); //形参为Exmpl对象的引用,无需调用复制构造函数传递实参
cobj = func3(); //调用默认构造函数创建局部Exmpl对象
//函数返回时调用复制构造函数创建作为返回值副本的Exmpl对象
//然后调用析构函数撤销局部Exmpl对象
//然后调用赋值操作符
//执行完赋值操作后, 调用析构函数撤销作为返回值副本的Exmpl对象
Exmpl *p = new Exmpl;// 调用默认构造函数动态创建Exmpl对象
vector<Exmpl> evec(3);//调用默认构造函数
//创建一个临时值Exmpl对象
//然后3次调用复制构造函数
//将临时值Exmpl对象复制到
//vector容器ever的每个元素
//然后调用析构函数撤销临时值Exmpl对象
delete p;//调用析构函数撤销动态创建的Exmpl对象
//evec及cobj生命期结束自动调用析构函数撤销
//撤销evec需要调用析构函数3次因为evec有三个元素
return 0;
}
- 理解复制控制成员和构造函数--实例
- 如何理解复制控制成员和构造函数
- 理解构造函数和复制控制成员的好例子
- 理解何时执行哪个构造函数和复制控制成员
- 构造函数和复制控制成员
- C++理解拷贝控制成员和构造函数
- 构造函数,友元,static类成员,复制控制
- 读书笔记--构造函数和复制控制
- c++ 初学 构造函数和复制控制
- 复制构造函数实例
- 构造函数和复制构造函数的理解与应用
- js构造函数的静态成员和实例成员
- C++派生类的构造函数和复制控制函数
- 派生类的构造函数和复制控制
- C++派生类的构造函数和复制控制
- C++(30)构造函数和复制控制
- c++复制构造函数实例
- C++ 复制控制之复制构造函数
- (转)STL总结
- Ubuntu上网配置
- 針對 ie 和 Firefox,簡化 JavaScript 的 onKeyPress 判斷! 分享
- 一个守护进程的两种实现
- 用php代码实现数据库的链接,创建表格等
- 理解复制控制成员和构造函数--实例
- 9款CSS菜单生成器/含在线CSS导航菜单生成和CSS菜单生成软件
- VSTS2008 解决源代码锁定迁出问题
- 框架和内功-写在2010年一个无聊的下午
- 字符串操作指令
- 《重构-改善既有代码的设计》清单
- 如何加大tomcat连接数
- Struts2配置异常:Exception starting filter struts2
- 如何用java程序实现短信群发