2013-01-31 51 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 

相对于这一切而言,有没有一种方法可以解决这个问题?

+1

这两个函数做了不同的事情_besides_输出? –

回答

2

路过常引用:

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

这两种形式可以绑定到这一点,你不应该修改你打印的内容。

+0

我认为OP的问题是问如何以相反的方式做事 –

+0

@IvayloStrandjev,哦,处理每一个不同?我可能误解了它,但看起来这应该对打印有好处。 – chris

+0

为真。我不确定我是否正确解释了这个问题,只是指出我的解释。 –

1

除非你打算修改通过引用传递的字符串,单

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

会工作。

或者你是否希望在每个版本中做一些不同的事情?

相关问题