クラスの変更はできませんので、私の名前を設定する新しい関数を追加することはできません。コードは名前の入力を取ることができませんか?
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 *&'型が何であるか知りたいですか? –
この恐ろしいクラスを書いた人に、デストラクタの 'nullptr'チェックが冗長であることを伝えてください。 –