私this
はすでにポインタであることを知っていますが、正確に何であるかを理解したいと思いthis
ます。それはアドレスですか、それとも*タイプのポインタですか?
これを変数に格納する場合、その変数をどのように定義する必要がありますか?
これを例として取り上げましょう
class Adult
{
private:
Child child;
public:
Adult(){
child = new Child(this);
//to have something to hold onto and get back to the upper level of the hierarchy.
}
};
class Child
{
private:
Adult* my_adult;
public:
Child();
Child(Adult &hand){
my_adult = hand;
}
}
さて、問題が発生したのは、次のコード行ですmy_adult = hand;
。プロジェクトをビルドしようとすると、これが出力されます。このプロジェクトの背後にさらに多くのコードがあると、恐ろしくショックを受けます。
sys/chin.cpp:19:14: error: cannot convert ‘Adult’ to ‘Adult*’ in assignment
では、メンバーへのアクセスではなくデータ型として扱われる場合、これはどのように機能しますか?