大虾求解!!!!C++问题!!!!!
时间:2011-11-28
来源:互联网
2. 参考附件资料《拷贝构造函数的调用》,创建一个包含double*的类,其构造函数通过调用new double来对double*进行初始化,并将构造函数的参数中的值赋给存储单元。析构函数打印出double*所指向的值,并把该值设为-1,对存储单元调用delete,然后将double*指针置0。现在创建一个函数,该函数可通过按值传递方式获取刚创建的类的对象。在main()中调用这个函数,看看会有什么问题发生。通过创建一个拷贝构造函数来解决这个问题。
作者: wade30822 发布时间: 2011-11-28
一个最简单的smart pointer类嘛
作者: qscool1987 发布时间: 2011-11-28
C/C++ code
我标记的三个位置你不搞清楚你是搞不懂的,C++primer上讲的很清楚
#include <iostream> using namespace std; class base { public: base(double a):pt(new double(a)),use(new int(1)){}//1 base(const base &orig):pt(orig.pt),use(orig.use){++*(orig.use);}//2 int getacc()const{return *use;} ~base() { cout << *pt << endl; if(--*use == 0)//3 { delete pt; pt = NULL; } } private: double *pt; int *use; }; int main() { int a(4); base mb1(a); base mb2(mb1); cout << mb1.getacc() << endl; return 0; }
我标记的三个位置你不搞清楚你是搞不懂的,C++primer上讲的很清楚
作者: qscool1987 发布时间: 2011-11-28
相关阅读 更多
热门阅读
-
office 2019专业增强版最新2021版激活秘钥/序列号/激活码推荐 附激活工具
阅读:74
-
如何安装mysql8.0
阅读:31
-
Word快速设置标题样式步骤详解
阅读:28
-
20+道必知必会的Vue面试题(附答案解析)
阅读:37
-
HTML如何制作表单
阅读:22
-
百词斩可以改天数吗?当然可以,4个步骤轻松修改天数!
阅读:31
-
ET文件格式和XLS格式文件之间如何转化?
阅读:24
-
react和vue的区别及优缺点是什么
阅读:121
-
支付宝人脸识别如何关闭?
阅读:21
-
腾讯微云怎么修改照片或视频备份路径?
阅读:28