您的位置:首页 > 编程语言 > C语言/C++

【c++】浅拷贝成功__count解决

2015-06-05 18:01 441 查看
#include <iostream>
#include <string.h>
using namespace std;

class String
{
public:
String(const char *str = " ")
{
m_data = new char[strlen(str) + 1];
strcpy(m_data, str);
count++;
}
String(const String &s)
{
m_data = s.m_data;
count++;
}
~String()
{
//当指针释放到只剩一个的时候,再释放就不会崩溃了
if (--count == 1)
{
delete[]m_data;
}
}
public:
void print()
{
cout << m_data << endl;
}
private:
char *m_data;
static int count;//定义一个计数器,表示当前空间上有多少个指针指向
};

int String::count = 0;

int main()
{
String s("hello");
s.print();
String s1 = s;
s1.print();
return 0;
}


内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: