也许问题很简单,但是做这样的事情的最佳做法是什么,假设有一个类数据,必须从文本文件中读取一些信息。如果需要具有以下两个选项且行为相同:
Data my_data;
my_data.load("file.txt");
和
Data my_data("file.txt");
如何在不重复代码的情况下实现此类功能?
感谢。
答案 0 :(得分:0)
通过在构造函数中重用load
成员函数来避免代码重复:
Data() { // Provide a default constructor
}
Data(const std::string& fileName) {
load(fileName);
}
void load(const std::string& fileName) {
... // Load the file
}
答案 1 :(得分:0)
你可以声明2个构造函数(它被称为重载)。
Data()
{
}
和
Data(string fileName)
{
load(fileName);
}
并且只能定义一次加载功能。