我在想,如果我不得不刪除這個指針例子是這樣的:C++ /析構函數 - 運營商刪除
class Person
{
public:
Person(char *name) :_name(name) {}
// Is this delete necessary?
~Person() {
cout<<"Godbay Person"<<endl;
delete _name;
}
private:
char * _name;
}
不可能告訴,但很可能不會。 'Person'甚至不知道指針是指向一個動態分配的'char'或'char'數組。 – juanchopanza
「人們甚至不知道...」name是Person類的字段,所以應該知道它指向動態分配的char。 – Radek
@AllanBradley在你的代碼中,'name'是傳遞給構造函數的指針的副本,所以類不可能知道它是否被動態分配。(當然,在現代C++中,我無法想象會動態分配char或char的數組)。 –