我是Qt(和一般的C++)的新手,所以我在指針方面很弱。我需要將Object&
轉換爲Object*
(其中Object
是某個類的對象)Qt和C++如何轉換Obj&Obj *
我該怎麼做?
任何幫助,將不勝感激。
我是Qt(和一般的C++)的新手,所以我在指針方面很弱。我需要將Object&
轉換爲Object*
(其中Object
是某個類的對象)Qt和C++如何轉換Obj&Obj *
我該怎麼做?
任何幫助,將不勝感激。
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);
謝謝,那幫了!我從一段時間以來就遇到了錯誤,但現在已經解決了。 –
您使用地址的操作,就像一個普通的對象。
SomeObject o;
SomeObject &ref = o;
SomeObject *ptr = &ref;
是的,和我們所說的一樣(儘管可能是你之前發佈的:D)。 –
在哪種情況下?在函數調用? –
它在函數定義中,不過我一般問了 –