加入收藏 | 设为首页 | 会员中心 | 我要投稿 PHP编程网 - 金华站长网 (https://www.0579zz.com/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 创业 > 正文

C++带有指针成员的类处理方式详解

发布时间:2020-12-24 06:49:53 所属栏目:创业 来源:网络整理
导读:副标题#e# 在一个类中,如果类没有指针成员,一切方便,因为默认合成的析构函数会自动处理所有的内存。但是如果一个类带了指针成员,那么需要我们自己来写一个析构函数来管理内存。在c++ primer 中写到,如果一个类需要我们自己写析构函数,那么这个类,也

测试类如下:

// SmartPointer.cpp : 定义控制台应用程序的入口点。
//

#include "stdafx.h"
#include "HasPtr.h"
#include <iostream>

using namespace std;


int main()
{
 int *temp = new int(100);
 HasPtr ptr(temp,22);
 cout << "ptr------------>" << endl;
 cout << ptr.get_ptr_value() << endl;
 cout << ptr.get_int() << endl;
 HasPtr ptr2(ptr);
 cout << "ptr2------------>" << endl;
 cout << ptr2.get_ptr_value() << endl;
 cout << ptr2.get_int() << endl;
 system("PAUSE");
 return 0;
} 

我们把U_Ptr 叫做智能指针,用于帮我们管理需要的指针成员。我们的业务对象HasPtr对象包含一个智能指针,这个指针在HasPtr 对象创建时创建,智能指针的use 变量用来记录业务对象HasPtr对象被复制了多少次,也就是说,有多少个相同的指针指向了ptr所指向的地方。如果要记录HasPtr对象一共有多少个一样的,那么就需要在拷贝构造函数和赋值操作处进行对use变量加一操作,在析构函数处进行减一操作。当减到0时,删除指针。

(编辑:PHP编程网 - 金华站长网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

热点阅读