仅对char*和字符串重载函数

Overloading functions only for char* and strings

本文关键字:重载 函数 字符串 char 仅对      更新时间:2023-10-16

我正在制作一些函数来保存和加载我的值:

是这两个:

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*添加过载。saveFileloadFile应简单地取其论点为const std::string&

如果你有:

void saveFile(std::string const& );

可以同时调用:

obj.saveFile("file.txt");
obj.saveFile(std::string("file.txt"));