2013-01-05 3 views
0

C++에 int, string 또는 double 중 하나의 포인터를 반환 할 수있는 함수가 있다고 가정 해 봅시다. 이 함수의 반환 형식은 무엇입니까?다른 유형의 C++ 포인터

함수가 반환하면 반환 값을 저장할 수있는 변수도 필요합니다. 나는 단지 같은 유형을 사용해야 할까?

+0

반환 유형은'void *'입니다. – axiom

답변

2

유일한 일치는 void*입니다.

void* pResult = foo(); 

당신은 int*, string* 또는 double* 캐스팅해야합니다, 나중에 값을 사용하십시오. 따라서 어떤 식 으로든 실제 유형을 추적해야합니다.

2

한 가지 방법은 필립의 대답에서 설명하는 void* 방법입니다

또 다른 방법은 몇 가지 일반적인 기본 오브젝트 ( Java에서 즉 Object, Qt에서 QObject)에서 파생되는 object에 유형을 캡슐화하고 수 있도록하는 것입니다

함수가 공통 기본 오브젝트를 리턴합니다.

QObject obj = foo();

확인 당신이 사용하는 라이브러리, 어쩌면 당신이 사용할 수있는 몇 가지 기존의 일반적인 기본 클래스가 있습니다.

Btw, 나는 템플릿 기능이 문제를 해결하는 좋은 방법이라고 생각합니다.