2009-06-17 4 views

답변

12

로 변경을 : 당신이 bar 무엇 s 포인트를 줄 필요가 있으므로 문자열로

bar(*s); 
+0

어떻게하면 다른 방법으로 할 수 있습니까? const string &를 string *으로 변환 하시겠습니까? – Petr

+1

@Petr : 당신이'const' -ness를 없애 버릴 위험은 있지만, 당신이 무엇을하고 있는지 알고 있다면,'const_cast (& s)' –

4
void foo(string* s) 
{ 
    bar(*s); 
} 

s 포인트 및 bar는 문자열 (A 참조)이 필요합니다. "s이 가리키는 것"의 철자법은 *s입니다.

2

포인터를 참조로 변환 할 때 NULL 포인터를 변환하려고하지 않는 것이 중요합니다. 컴파일러는 변환을 허용해야합니다 (일반적으로 유효한 참조인지 여부를 알 수 없기 때문에).

* 연산자는 & 연산자의 반대입니다. 참조에서 포인터로 변환하려면 & (주소)를 사용하십시오. 포인터를 참조로 변환하려면 * (내용)을 사용하십시오.

관련 문제