2016-06-23 2 views
0

메소드에서 상수에 대한 포인터를 가져와야합니다. 상수에 대한 포인터를 반환 값으로 반환 할 수 없습니다.메소드의 상수에 대한 포인터를 포인터에 대한 포인터로 가져옴

Getpointer의 서명이어야하는 항목은 무엇입니까?

struct xyz 
{ 
    int x; 
    int y; 
    int z; 
}; 

xyz myruntime; 
void Getpointer(xyz **pz); 
int _tmain(int argc, _TCHAR* argv[]) 
{ 
    const xyz *ptr = NULL; 
    Getpointer(&ptr); 

    return 0; 
} 

void Getpointer(const xyz const ** pz) 
{ 
    *pz = &myruntime; 
} 

답변

4

귀하의 함수 프로토 타입

void Getpointer(xyz **pz); 

또한, const xyzxyz const과 동일한 함수 정의

void Getpointer(const xyz const ** pz) 

에게 일치하지 않으며, const xyz const 중복입니다. 따라서 함수 프로토 타입은

void Getpointer(const xyz ** pz); 

이어야하며 함수 정의는 비슷해야하지만 끝에는 세미콜론이 없어야합니다.

+1

감사로 전화 한 후

void Getpointer(const xyz *&pz) { pz = &myruntime; } 

C++에 대한 참조를 사용할 수 – Maanu

2

또한 함수 선언을 변경하지 않고 내가 다른 옵션을 시도 ..

const xyz *ptr = NULL; 
Getpointer(ptr); 
관련 문제