第13章习题 复制控制
来源:互联网 发布:优酷福利待遇 知乎 编辑:程序博客网 时间:2024/05/29 15:44
1.理解调用过程
#include <iostream>#include <vector>using namespace std;/*************************定义Exmpl类,该类给出复制控制成员和一个默认构造函数,各成员函数输出自己的名字。主程序中以不同方式使用Exmpl类型的对象:作为非引用形参和引用形参传递,动态分配;作为函数返回值,进行赋值操作;作为元素放在vector容器中,以此研究构造函数和复制控制成员的执行情况。*****************************/struct Exmpl{ //默认构造函数 Exmpl() { cout << "Exmpl()" << endl; } //复制构造函数 Exmpl(const Exmpl &) { cout << "Exmpl(const Exmpl &)" << endl; } //赋值操作符 Exmpl &operator=(const Exmpl &rhe) { cout << "operator=(const Exmpl &)" << endl; return *this; } //析构函数 ~Exmpl() { cout << "-Exmpl()" << endl; }};void func1(Exmpl obj) //形参为Exmpl对象{}void func2(Exmpl &obj) //形参为Exmpl对象引用{}Exmpl func3(){ Exmpl obj; return obj; //返回Exmpl对象}int main(){ Exmpl eobj; //调用构造函数 func1(eobj); //类对象作形参传递调用复制构造函数 //函数返回时调用析构函数 func2(eobj); //什么都没有做?类对象引用作参数不调用任何构造函数? eobj = func3(); //func3中Exmpl obj调用默认构造函数创建局部Exmpl对象 //函数返回时调用复制构造函数创建作为返回值副本的Exmpl对象 //返回时调用析构函数 撤销局部Exmpl对象 //赋值时调用赋值操作符 //返回*this又调用析构函数? Exmpl *p = new Exmpl; //调用默认构造函数? vector<Exmpl> evec(3); //调用默认构造函数 创建Exmpl对象 //调用3次复制构造函数?将临时值Exmpl对象复制到vector容器evec的每个元素 //调用析构函数? delete p; //调用析构函数 撤销evec需调用析构函数3次(有3个元素) return 0;}
2. 智能指针
看了好几遍思路算是清楚了,也不知道自己是不是真的理解了。下面是大神写的。
http://blog.csdn.net/Hackbuteer1/article/details/7561235
当然,有网友也发现了些问题,暂不深究了。
http://bbs.csdn.net/topics/300258172
- 第13章习题 复制控制
- 13章习题 理解复制控制
- 第13章 复制控制
- 第13章 复制控制
- 《C++ Primer》 第13章 复制控制
- 《C++ primer》第 13 章 复制控制
- 【C++ Primer】第13章 复制控制
- 第13章 复制控制 (part2) 消息处理示例
- [C/C++] 第13章 复制控制 primer
- 《C++ Primer》第四版 第13章 复制控制
- 第13章 复制控制 (part1) 复制构造函数 & 赋值操作符 & 析构函数
- C++ 第13章 复制控制---复制构造函数、赋值操作符、析构函数
- 【c++primer——】第13章复制控制——01深入理解复制构造函数
- 智能指针:复制控制!《C++Primer 》第13章学习纪要
- 《C++ Primer 4 Answer Book》 整理[12]——第13章 复制控制
- C++ primer第二次阅读学习笔记(第13章:复制控制)
- [C++] 第 13 章 复制控制 [C++ primer-on] 自我整理
- Accelerated C++ 习题解答 第13章
- UVA1146 Now or later
- 现代操作系统笔记 1
- hdu1085 Holding Bin-Laden Captive!
- 如何在Eclipse中看Android的源码
- Linux内核scripts/Makefile.build文件结构
- 第13章习题 复制控制
- poj 2184 Cow Exhibition 01背包变形,正负背包
- Hibernate在PostgreSQL上执行sum函数导致数据失真的问题
- resource.h student.cpp student.h
- 新的Mac Mini开发前的准备工作
- 下一代云计算平台--融合基础设施
- Commons BeanUtils的使用
- TF-IDF与余弦相似性的应用(一):自动提取关键词
- WCF 项目应用连载[11] - 结束