C++primer pe13_15(还有13——4、9、12中NoName类的指针疑惑)
来源:互联网 发布:4g网络优化先培训骗局 编辑:程序博客网 时间:2024/05/18 01:48
new Sales_item; new Sales_item; new Sales_item; new Sales_item;//这些必须主动delete//计算析构函数的调用次数,在析构函数中定义了一个打印语句以供判断#include"head.h"#include"Sales_item.h"void fcn(const Sales_item *trans, Sales_item accum){//函数内是三次,item1和item2,还有一个accum的副本Sales_item item1(*trans), item2(accum);if(!item1.same_isbn(item2)) return;if(item1.avg_price() <= 99){std::cout << "test(in):" << std::endl; return;}else if (item2.avg_price() <= 99) return;}int main(){Sales_item item1,item2;Sales_item *p = &item1;//p = new Sales_item;//对照组:p指向正常的动态分配对象,delete没问题fcn(&item1, item2);std::cout << "test1:" << std::endl;delete p;//先调用一次delete p, 再在结束默认删item1,重复?其实是这里是一个强制用delete删除一个non-dynamic-obj的错误吧//不等到最后冲突,在此句执行完就弹错了(因为是内存错误把,当即生效),那些报错声明还是看不太懂,一大堆地址,还有rw-p之类的权限,每个地址的权限?std::cout << "test2:" << std::endl; new Sales_item; new Sales_item; new Sales_item; new Sales_item;//要注意析构函数的调用条件,这些必须主动delete }
小结:析构不能overload,但是编译器始终都能合成一个析构函数并且始终都会运行。这也证实出了overload功能确实只是compiler的一个小功能,overload参数列表不同只是对coder的要求,compiler本身是可以随意去构建重载的。
rule of three:析构函数需要另外两个复制控制,尽管不能通过打印输出之类的验证他们一起运行过(Class a = new Class;也是一样,虽然此复制构造过程用到赋值操作符,但是显示不出来,只显示用过一次copy-constructor)
存疑:13.4 13.9 13.12牵连的Noame类,有个私有成员,是std::string *pstring;关于此指针的初始化,复制,析构等问题
到底什么是所谓的复制指针指向的string对象而非复制指针,是指复制指针内容么(也就是两指针同指向一个对象)?这不叫复制指针?如果是真正意义的复制string对象,那么string对象存在哪?类对象成员中只有一个string指针,没有string对象的位置。- C++primer pe13_15(还有13——4、9、12中NoName类的指针疑惑)
- C 关于指针的疑惑
- 看c primer 的一些疑惑
- C++ Primer中智能指针的一个小疑惑,是书中的bug?
- c++primer学习记录(2)——引用,指针
- 【C++】《C++ Primer Plus》笔记(2)——指针
- C++Primer——变量、引用、指针
- C指针两个疑惑
- noname
- 关于指针(c++primer)
- C++primer 指针(二)
- 细嚼慢咽C++primer(1)——指针,void*型指针,const限定符(2)
- C++primer第四章(二):数组和指针——指针
- 函数指针的疑惑
- 关于指针的疑惑
- 数组指针的疑惑
- 二级指针的疑惑
- 双重指针的疑惑
- 同时查询出最大值与最小值
- 范数
- 提交’时提示ip被记录 防注入系统的利用。
- java synchonized关键字详解
- 配置Office在IIS中实现预览功能
- C++primer pe13_15(还有13——4、9、12中NoName类的指针疑惑)
- HRESULT返回值说明
- android 横竖屏切换生命周期详解
- CAS通过用户名与ip限制密码输入错误次数
- 编写高效的android代码
- io 操作文件内容
- Smarty中如何获取数组的长度 ,及smarty 调用php函数
- 处理 eclipse sts中的乱码
- “大象鼻子”嗅出转基因食物 为健康护航