Qt和C++如何将Obj转换为Obj*

Pan*_*ani 2 c++ qt pointers

我是Qt(和一般的C++)的新手,所以我在指针方面相当弱.我需要转换Object&Object*(Object某些类的对象在哪里)

我该怎么做?

任何帮助,将不胜感激.

Alo*_*ave 5

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
Run Code Online (Sandbox Code Playgroud)

您不能将引用转换为指针,只需使用引用作为它引用的对象实例的别名.因此,您只需获取引用对象的地址,就像它是原始对象一样.

因此,如果你有一个函数,它将一个指针作为参数,你有一个参考,你传递的用法类似于使用一个实际的对象.

例如:

void doSomething(Obj *ptr);

Obj ob;
Obj *ptr = &ob;              
Obj &ref = *ptr; 

doSomething(&ob);
doSomething(ptr);
doSomething(&ref);
Run Code Online (Sandbox Code Playgroud)