[温故而知新] 《深度探索c++对象模型》——运行期语意
2016-04-12 00:47
344 查看
这张东西有点少,就写6条…
![](http://img.blog.csdn.net/20160412005535909)
1. copy assignment operator在虚拟继承情况下行为不佳,有可能多次调用,比如说在一个菱形结构中。
2. 数组的定义,每个数组里的元素的构造和析构也跟之前的一样需要进行。数组里的元素按默认构造进行初始化。
3. new操作符
int *pi = new int(5); //分两步进行 int *pi; if( pi = __new(sizeof(int)) ){ *pi = 5;//成功了才初始化 }
4. Placement Operator new
Point p; Point *p1 = new (&p) Point;//构造函数会调用 ...... p1->~Point(); //需要手动调用析构,这里如果改为delete p1的话,是会释放内存的,书中所说的c++标准修正了这个问题,但至少我的编译环境c++11还没修正。 Point *p2 = new (&p) Point;//构造函数会调用
5. 数组的删除
Point *ptr = new Point3d[10];//base class 指针,指向derived class的数组 //尽量别这么干,否则直接 delete[] ptr;是有问题的 //非要这么干,在删除的时候,就得一个一个强制转换后再delete。
6.临时性对象
临时性对象在完整表达式尚未评估完全之前,不得被摧毁。相关文章推荐
- C语言模拟php basename() 函数
- C++使用回溯算法解决简单迷宫问题
- c++实验3-多分段函数求值
- c++第三次实验(定期存款利息计算器)
- C语言小问题记录
- c++实验三--个人所得税计算器
- C++作业3
- 【使用CMake组织C++工程】2:CMake 常用命令和变量
- C 【进制查表法 求取给定十进制数的其他进制形式数值】
- C++实验3-1-个人所得税计算器
- 作业:C++作业3
- Worktile 移动团队如何使用 C++ 完成跨平台应用开发
- emacs中完成c++程序编译执行
- C++ Primer 5th - 2.1 基础内建类型
- C/C++拷贝文件的方法
- VS2010的C++项目属性
- c++作业03
- c++第三次实验-1
- c++第三次实验-1
- c++第三次实验作业