【c++】淺拷貝成功__count解決
#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;
}
相關文章
- C++淺拷貝和深拷貝C++
- 【c++】淺拷貝與深拷貝C++
- C++拷貝建構函式(深拷貝,淺拷貝)C++函式
- C++---寫時拷貝解決深淺拷貝問題C++
- jquery之物件拷貝深拷貝淺拷貝案例講解jQuery物件
- 圖解 Python 淺拷貝與深拷貝圖解Python
- vue深拷貝淺拷貝Vue
- 深入淺出深拷貝與淺拷貝
- 淺探js深拷貝和淺拷貝JS
- 淺談深拷貝與淺拷貝?深拷貝幾種方法。
- 深拷貝和淺拷貝的簡要詳解
- iOS深拷貝和淺拷貝iOS
- JS深拷貝與淺拷貝JS
- Java深拷貝和淺拷貝Java
- 物件深拷貝和淺拷貝物件
- javascript 淺拷貝VS深拷貝JavaScript
- JavaScript 深度拷貝和淺拷貝JavaScript
- JavaScript深拷貝和淺拷貝JavaScript
- js 淺拷貝和深拷貝JS
- js 深拷貝和淺拷貝JS
- JavaScript淺拷貝和深拷貝JavaScript
- js深拷貝和淺拷貝JS
- js 深拷貝 vs 淺拷貝JS
- 深入淺出的“深拷貝與淺拷貝”
- javascript深淺拷貝講解JavaScript
- python 指標拷貝,淺拷貝和深拷貝Python指標
- 深拷貝、淺拷貝與Cloneable介面
- 賦值、淺拷貝與深拷貝賦值
- 實現物件淺拷貝、深拷貝物件
- Python淺拷貝與深拷貝Python
- go slice深拷貝和淺拷貝Go
- JavaScript之深拷貝和淺拷貝JavaScript
- js的深拷貝和淺拷貝JS
- 聊聊物件深拷貝和淺拷貝物件
- ECMAScript-淺拷貝和深拷貝
- python深拷貝與淺拷貝Python
- js之淺拷貝和深拷貝JS
- 深度解析深拷貝和淺拷貝