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

这一切都很新,有没有办法可以处理这个问题?

4

2 回答 2

2

通过 const 引用传递:

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

两种形式都可以绑定到它,您不必修改打印的内容。

于 2013-01-31T10:09:41.657 回答
1

除非您打算修改通过引用传入的字符串,否则单个

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

将工作。

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

于 2013-01-31T10:10:06.063 回答