仅对 char* 和字符串重载函数
Overloading functions only for char* and strings
我正在制作一些函数来保存和加载我的值:
他们是这两个:
void safeFile(string &set_name) const;
void loadFile(string &set_name);
这里的问题是我也想让它们为 char* 工作,所以我像这样重载了它们:
void safeFile(string &set_name) const;
void loadFile(string &set_name);
void safeFile(char* set_name) const;
void loadFile(char* set_name);
在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*/
有什么更好的方法或其他方法吗?谢谢
只是不要为 char*
添加重载。 saveFile
和 loadFile
应该简单地将它们的参数作为 const std::string&
.
如果你有:
void saveFile(std::string const& );
你可以同时调用它:
obj.saveFile("file.txt");
obj.saveFile(std::string("file.txt"));
我正在制作一些函数来保存和加载我的值:
他们是这两个:
void safeFile(string &set_name) const;
void loadFile(string &set_name);
这里的问题是我也想让它们为 char* 工作,所以我像这样重载了它们:
void safeFile(string &set_name) const;
void loadFile(string &set_name);
void safeFile(char* set_name) const;
void loadFile(char* set_name);
在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*/
有什么更好的方法或其他方法吗?谢谢
只是不要为 char*
添加重载。 saveFile
和 loadFile
应该简单地将它们的参数作为 const std::string&
.
如果你有:
void saveFile(std::string const& );
你可以同时调用它:
obj.saveFile("file.txt");
obj.saveFile(std::string("file.txt"));