私はすでにthis
がポインタであることを知っていますが、私は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
このように、アクセスするメンバーとは反対のデータ型として扱う場合、どのように機能しますか?
あなたが「アドレス」と呼んでいるのは確かに_reference_です。 – Vlad