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
对所有这些都是新手,有没有办法可以解决这个问题?
答案 0 :(得分:2)
通过const引用:
void printOutput(const std::string &text);
两种形式都可以绑定到那种形式,你不必修改你打印的内容。
答案 1 :(得分:1)
除非您计划修改通过引用传入的字符串,否则单个
void printOutput(std::string const& text);
会奏效。
或者您希望在每个版本中做些不同的事情吗?