해결

2013-01-31 4 views
0
void printOutput(std::string text); 
void printOutput(std::string& text); 

두 함수는 콘솔에 텍스트를 인쇄,하지만 난 각각의 경우 처리하는 원 :해결

std::string testOutput = "asdf"; 
output->printOutput(testOutput); // Gives the error as it can use either function 

가 어떤 경우에는 내가 원하는 수를에 :

output->printOutput("asdf"); // Only the first function can be used 

이 모든 것보다 새로운 것은 어떻게 처리 할 수 ​​있습니까? const를 참조하여

+1

두 기능이 출력 외에 다른 작업을 수행합니까? –

답변

2

패스 :

void printOutput(const std::string &text); 

두 형태가 결합 할 수 있고, 당신은 당신이 인쇄 무엇을 수정할 필요가 없습니다.

+0

OP의 질문에 다른 방법으로 어떻게해야하는지 묻습니다 –

+0

@IvayloStrandjev, 오, 각각 다르게 처리할까요? 나는 그것을 잘못 해석했을 수도 있지만, 이것이 인쇄에 좋을 것 같습니다. – chris

+0

사실. 나는이 문제를 올바르게 해석하고 있는지 확신 할 수 없다. 단지 나의 해석을 지적해라. –

1

당신이 에 계획하지 않는 한 수정 참조에 의해 전달 된 문자열, 하나의

void printOutput(std::string const& text); 

가 작동합니다.

또는 각 버전마다 다른 것을하기를 원하십니까?