沒有對類進行任何更改,因此我不能添加任何爲我設置名稱的新函數。代碼無法輸入名稱?
class ele
{
char* name;
public:
ele() :name(nullptr){}
~ele()
{
if (name)
delete[]name;
}
char*& GetName();
};
#endif
我嘗試訪問該名稱,但它給我錯誤後cin調試斷言失敗。無效的空指針。
> ` char*& ele::GetName()
{
cout << "Please Enter the name"<< endl;
cin >> this->name;
return this->name;
}`
'this-> name'是'nullptr'因爲這就是你在構造函數中初始化它的方式。你不能從'std :: cin'讀入'nullptr'。您需要在某個時間點分配存儲空間並將'name'設置爲指向它。你可以通過使用'std :: string'來節省很多麻煩。 –
我很想知道'char *&'類型是什麼? – 2017-02-03 19:03:13
告訴寫這個可怕類的人,析構函數中的'nullptr'檢查是多餘的。 –