c ++中重复的构造函数和方法功能

时间:2017-09-16 09:46:23

标签: c++

也许问题很简单,但是做这样的事情的最佳做法是什么,假设有一个类数据,必须从文本文件中读取一些信息。如果需要具有以下两个选项且行为相同:

Data my_data;
my_data.load("file.txt");

Data my_data("file.txt");

如何在不重复代码的情况下实现此类功能?

感谢。

2 个答案:

答案 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);
}

并且只能定义一次加载功能。