所以我有以下的類...如何檢查一個對象是否已經在C++中初始化/創建?
class Pet
{
public:
Pet() : id(0),
name("New Pet")
{
}
Pet(const int new_id, const std::string new_name) : id(new_id),
name(new_name)
{
}
Pet(const Pet new_pet) : id(new_pet.id),
name(new_pet.name)
{
}
private:
const int id;
const std::string name;
};
某處在我的代碼,然後創建這個類,像這樣的情況下...
Pet my_pet = Pet(0, "Henry");
後來在我的代碼,事件應該會導致這個寵物被刪除。 delete(my_pet);
如何檢查是否my_pet已經初始化...
會是這樣的工作?
if(my_pet == NULL)
{
// Pet doesn't exist...
}
'my_pet'沒有按不需要刪除,因爲它不是一個動態分配的對象。你的意思是'Pet * my_pet = new Pet(0,「Henry」);'? – Levi
你可能應該把你的'const Pet'和'const std :: string'參數作爲引用,在這裏'Pet(const Pet new_pet)'和這裏'Pet(const int new_id,const std :: string new_name)'for效率,這裏沒有必要複製數據。 – thelink2012