下面的代碼不起作用:問題指針和構造
class String{
public:
char* str;
int* counter;
String(){
str = NULL;
counter = new int;
*counter = 1;
};
String(const char* str1){
String();
str = new char[strlen(str1)+1];
strcpy(str, str1);
};
};
我已經與它的內部改變調用空構造和替換它,現在下面的代碼工作:
class String{
public:
char* str;
int* counter;
String(){
str = NULL;
counter = new int;
*counter = 1;
};
String(const char* str1){
//String();
str = new char[strlen(str1)+1];
strcpy(str, str1);
counter = new int;
*counter = 1;
};
你可以請建議爲什麼嗎?
謝謝,李。
您應該說明它是什麼,你考慮沒有工作,它是什麼,你認爲現在可能工作對你想要達到的目標給出理性。對於初學者來說,你應該使用'std :: string',因爲它已經工作了,從那裏開始......你提供泄漏內存的兩個實現,計數器不需要動態分配,通常是一個好主意成員暴露... – 2010-09-14 14:31:50
你爲什麼要調用默認的構造函數,看起來沒有附加值? – 2010-09-14 14:32:36