关于c++类中的指针成员问题
来源:互联网 发布:智多星造价软件多少钱 编辑:程序博客网 时间:2024/06/07 23:18
C++类中指针成员的管理:
有三种解决方案:
1.全部用值类型指针:
优点:可以很安全而且简单。
缺点:占用大量的内存,并且内存CPY运算量巨大。
方法:写如下几个函数:
复制构造函数。
析构函数。
赋值控制函数。
2.全部用指针类型:
优点:简单而且高效。
缺点:很复杂。
方法:构造智能指针。
3.常规的指针:
优点:复杂而且高效
缺点:需要程序员手动管理他们行为,具有指针的所有缺陷,从而造成编程困难。
因为,不仅要检查对象的delete,而且要检查成员指针的delete是否该执行。
这三种方案如果都被用在项目上,那么,我们该如何做。
1.如果是值类型,就不用去管理。
2.如果是智能指针类型,也不用去管理。
3.如果是常规类型,那么就需要去查看它的成员指针,看它的成员指针是什么类型。然后递归地查找。转3.
第三种方案万万用不得。。。。。。。。。。。。。
最好的是第二种:
方法是保留一个对象中指针的使用计数。算法:
1.if(赋值操作)
『
if(自己的指针需要delete)
那么delete掉;
复制各个成员过来。
指针成员的使用计数+1;
』
if(复制构造)
『
计数++;
』
2.else if(析构)
『
计数-1;
if(计数为0)delete;
』
3.if(其他构造)
『
构造智能指针对象,并且计数为1;
如果不构造指针对象,那么计数为0;
』
这样,每次在析构的时候,都在询问:
我这个指针成员的副本有几个?
用指针NULL表示有0个副本,为1表示1个副本。。。。总结为一句话:
思想:在delete某个对象的时候,进行询问:
是否这个对象的指针成员需要delete?
- 关于c++类中的指针成员问题
- C中的关于指针的优先问题
- 关于类成员函数指针的调用问题
- 关于空指针调用类成员能否通过的问题
- 关于C++中类的成员函数指针相关问题
- 关于类的静态成员函数指针的问题
- 关于类成员函数指针
- 关于成员指针函数的调用问题
- 类中的指针成员管理
- 管理类中的指针成员
- 管理类中的指针成员
- 指针指向类中的成员
- 类的成员指针(对比于c语言中的函数指针)
- 关于含有指针成员的类的对象之间赋值指针的问题。
- 关于C语言中的指针
- 关于static修饰一个类中的成员函数的问题
- 关于C的指针问题
- 关于C++/JAVA类中的static成员和对象成员的说法正确的是:
- 深入剖析nginx时间缓存
- c++中的数组和指针,引用
- leetcode 623. Add One Row to Tree
- KMP
- spring boot+netty开发简单IM应用(一)
- 关于c++类中的指针成员问题
- Oracle初识笔记(三)
- 第13期《我想要的未来》8月刊
- 学习总结----redis
- Eclipse一闪而过的问题解决
- CentOS 6.5下快速搭建ftp服务器
- 递归函数的堆栈实现
- shadowsocks使用教程
- c++中的引用计数