當我創建一個類,包含一個指針,並在自動存儲中創建一個對象時,我應該在類中包含析構函數嗎? (是否有必要以釋放空間在存儲器?) 實施例:應該使用自動存儲的指針包含析構函數嗎?
class Node{
char *Name;
int age;
Node(char *n = 0, int a = 0) {
name = strdup(n);
age = a;
}
~Node(){
if (name != 0)
delete(name);
}
}
Node node1("Roger",20);
在這種情況下,你應該使用'std :: string',然後不需要任何指針。 – crashmstr
爲了可讀性,我建議用'NULL'或'nullptr'替換那些'0',並保持與約定一致。 – user4581301
當您使用低級資源分配(如malloc或new)時,編寫析構函數。但是你幾乎從不使用。特別是,如果你需要一個字符串,使用'std :: string'。 –