Edi*_*lot 1 c++ overloading default-parameters
我正在制作一些函数来保存和加载我的值:
他们是这两个:
void safeFile(string &set_name) const;
void loadFile(string &set_name);
Run Code Online (Sandbox Code Playgroud)
这里的问题是我也希望它们为char*工作所以我像这样重载它们:
void safeFile(string &set_name) const;
void loadFile(string &set_name);
void safeFile(char* set_name) const;
void loadFile(char* set_name);
Run Code Online (Sandbox Code Playgroud)
在cpp文件中:
void myclass::loadFile(string &set_name)
{
...
}
/* loadFile */
void myclass::safeFile(string &set_name)
{
...
}
/* safeFile*/
void myclass::loadFile(char *set_name)
{
string mystring(set_name);
loadFile(mystring);
}
/* loadFile */
void myclass::safeFile(char *set_name) const
{
string mystring(set_name);
safeFile(mystring);
}
/* safeFile*/
Run Code Online (Sandbox Code Playgroud)
有没有更好的或其他方式我应该这样做?谢谢
只是不要添加重载char*.saveFile并且loadFile应该简单地把他们的论点作为const std::string&.
如果你有:
void saveFile(std::string const& );
Run Code Online (Sandbox Code Playgroud)
你可以用两个来调用它:
obj.saveFile("file.txt");
obj.saveFile(std::string("file.txt"));
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
719 次 |
| 最近记录: |