String浅拷贝---引用计数
来源:互联网 发布:淘宝网购物首页 编辑:程序博客网 时间:2024/05/19 18:43
当类里面有指针对象时,进行简单赋值的浅拷贝,两个对象指向同一块内存,存在崩溃的问题!为了解决这个问题,我们可以采用引用计数。
在引用计数中,每一个对象负责维护对象所有引用的计数值。当一个新的引用指向对象时,引用计数器就递增,当去掉一个引用时,引用计数就递减。当引用计数到零时,该对象就将释放占有的资源。
#include<iostream>#include<Windows.h>#include<string.h>using namespace std;class String{public:String(const char* str = ""):_str(new char[strlen(str) + 1]){strcpy(_str, str);++_GetRefCount ;}String(String& s):_str(s._str){++_GetRefCount;}String& operator=(const String&s){if (this != &s){this->~String();_str = s._str;++_GetRefCount;}return*this;}~String(){_Release();}private:void _Release(){if (--_GetRefCount == 0){delete[] _str;cout << "delete" << endl;}}friend ostream& operator<<(ostream& os, const String& s){os << s._str;return os;}private:char* _str;int _GetRefCount;//引用计数};void Test1(){String s1("qwer");String s2(s1);cout << "s1:" << s1 << endl;cout << "s2:" << s2 << endl;String s3;s3 = s1;cout << "s3:" << s3 << endl;}int main(){Test1();system("pause");return 0;}
0 0
- String浅拷贝---引用计数
- String类引用计数的浅拷贝
- String类的引用计数的浅拷贝
- 关于String类浅拷贝引用计数问题
- String类详解(浅拷贝,深拷贝,引用计数,写时拷贝)
- String类的浅拷贝、深拷贝、引用计数、写时拷贝
- (String)引用计数写的拷贝
- String--引用计数写时拷贝
- String-引用计数的写时拷贝
- string引用计数的写时拷贝
- 浅拷贝、深拷贝与引用计数
- String类(深/浅拷贝、引用计数、写时拷贝)
- 小结 | C++ String类的引用计数的浅拷贝、写时拷贝
- 【String类浅拷贝的实现】C++:String类引用计数浅拷贝的两种实现
- String类---深拷贝,简洁深拷贝,引用计数拷贝,写时拷贝
- string类的写时拷贝与引用计数
- String类引用计数的写时拷贝
- string类的引用计数的写时拷贝分析
- 单链表就地逆置
- uva History Grading lcs
- const和static的作用以及区别
- Android图片加载框架之Google推荐的图片加载库Glide
- MySQL字符串转日期类型
- String浅拷贝---引用计数
- dijkstra及其相关练习题
- ios 保存和加载iphone document目录里面的图片
- mysql查询今天,昨天,近7天,近30天,本月,上一月数据的方法
- 字符流需要刷新动作,字节流不需要刷新
- Sublime Text3注册码(可用)
- Android群英传笔记——第七章:Android动画机制和使用技巧
- window8 禁止软件自动安装的方法
- go语言导入"C"出错问题