私は Qt (および一般的に C++) を初めて使用するので、ポインターがかなり苦手です。に変換する必要がObject&
ありますObject*
( whereObject
はあるクラスのオブジェクトです)
どうすればいいのですか?
どんな助けでも大歓迎です。
Obj ob; <------- Object named ob of the type Obj
Obj *ptr = &ob; <------- Oointer named ptr to type Obj pointing to ob
Obj &ref = *ptr; <-------- Reference named ref referring to object of type Obj
Obj *ptr2 = &ref; <-------- Pointer named ptr2 to object aliased by ref
参照をポインタに変換することはできません。参照をオブジェクト インスタンスへのエイリアス名として使用するだけです。したがって、元のオブジェクトであるかのように、参照されたオブジェクトのアドレスを取得するだけです。
したがって、ポインターを引数として受け取る関数があり、参照を渡す場合、使用法は実際のオブジェクトを使用する場合と似ています。
例えば:
void doSomething(Obj *ptr);
Obj ob;
Obj *ptr = &ob;
Obj &ref = *ptr;
doSomething(&ob);
doSomething(ptr);
doSomething(&ref);
単純なオブジェクトの場合と同様に、address-of 演算子を使用します。
SomeObject o;
SomeObject &ref = o;
SomeObject *ptr = &ref;