2012-06-15 3 views
2

Qt (및 C++ 전반)에 익숙하지 않아 포인터가 매우 약합니다. Object&Object* (Object은 어떤 개체의 개체 임)로 변환해야합니다.Qt 및 C++ Obj를 Obj로 변환하는 방법 *

어떻게 조작합니까?

도움을 주시면 감사하겠습니다.

+0

어떤 맥락에서? 함수 호출에서? –

+0

그것의 함수 정의에 있지만, 그럼에도 불구하고 일반적으로 묻습니다 –

답변

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 

참조를 포인터로 변환 할 수 없으며, 참조를 참조하는 개체 인스턴스의 별칭 이름으로 참조를 사용하기 만하면됩니다. 따라서 원래 객체 인 것처럼 참조 된 객체의 주소를 가져옵니다.

포인터를 인수로 사용하고 전달한 참조가있는 경우 사용법은 실제 개체를 사용하는 것과 비슷합니다. 예를 들어

:

void doSomething(Obj *ptr); 

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

doSomething(&ob); 
doSomething(ptr); 
doSomething(&ref); 
+0

고마워, 그게 도움이! 얼마 전에 오류가 발생했지만 해결되었습니다. –

1

당신은 주소를-의 사용 사업자, 단지 일반 객체처럼.

SomeObject o; 

SomeObject &ref = o; 

SomeObject *ptr = &ref; 
+0

예, @als가 말한 것과 동일합니다. (이전에 게시 한 사람이 너일지도 모르지만 : D). –

관련 문제