【发布时间】:2013-03-23 20:34:15
【问题描述】:
我在课堂上创建了一个函数。我将所有声明放在头文件中,将所有定义放在 .cpp 中。
在我的标题中:
class FileReader{
public:
FileReader(const char*); //Constructor
std::string trim(std::string string_to_trim, const char trim_char = '=');
};
在我的 .cpp 中:
std::string FileReader::trim(std::string string_to_trim, const char trim_char = '='){
std::string _return;
for(unsigned int i = 0;i < string_to_trim.length();i++){
if(string_to_trim[i] == trim_char)
continue;
else
_return += string_to_trim[i];
}
return _return;
}
每当我尝试编译和运行它时,都会遇到两个错误。
错误:为 'std::string FileReader::trim(std::string, char)' [-fpermissive] 的参数 2 给出的默认参数 [-fpermissive]
错误:在 'std::string FileReader::trim(std::string, char)' [-fpermissive] 中的先前规范之后
我做错了什么?我只希望我的函数有这个默认参数。
【问题讨论】:
-
只做一次就是错误所说的。
-
错误消息说在“之前的规范之后”指定默认参数是一个“错误”。这意味着什么?
标签: c++ default-arguments