可能是重复问题:
如何初始化默认值为类的函数参数
#include <string>
void foo1(const std::string& s = std::string());
void foo2(std::string& s = std::string());
void foo3(const std::string s = std::string());
void foo4(std::string s = std::string());
error at foo2(): default argument for ‘std::string& s’ has type ‘std::string {aka std::basic_string<char>}’
我明白编译器的意思,但是我不明白为什么这个错误不适用于foo1()
。
= {}
代替= std::string()
来节省空间。 - chris= ""
也可以工作,并且需要输入更少的内容。 - David Rodríguez - dribeas