疑問点
オブジェクトのポインタに代入を行う際、下のコードのようにアスタリスクを用いた代入を行うとsementation faultになってしまいます。*a.child = b
の部分をa.child = &b
とすれば所望の出力結果を得られます。
オブジェクトのポインタへの代入の際intのポインタへの代入とは違い、下のコードような代入はご法度ということなのでしょうか。また別件になり申し訳ないのですが、下のコードのStudentクラスのように、メンバ変数に自身のポインタを有するクラスは推奨されないのでしょうか。抽象的な質問で申し訳ございません。
該当のソースコード
cpp
1#include <bits/stdc++.h> 2 3class Student 4{ 5public: 6 Student(int i, char* _name){ 7 number = i; 8 name = _name; 9 child = nullptr; 10 } 11 int number; 12 char* name; 13 Student* child; 14}; 15 16int main(){ 17 Student a = Student(1, "john"); 18 Student b = Student(2, "tom"); 19 *a.child = b; 20 std::cout << a.child->name << std::endl; 21 return 0; 22} 23
回答2件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2020/05/14 01:48