类的私有Load()方法,它们如何工作

时间:2011-05-29 04:34:06

标签: c++ class

我对c ++很新,我遇到了一些我遇到问题的代码,希望有人可以启发我。这是我理解为单例类,它用于保存应用程序的设置。该类有一个私有构造函数和一个私有的Load()方法。它也将自己实例化为私人成员,我觉得这一切似乎都可以。

private:
MySettings(void);
MySettings(const MySettings&);
static MySettings& GetInstance();

bool Load();

private:        
    static MySettings mySettings;

类的Load()方法中的代码似乎正在执行,我不明白为什么。我不是(不能?)在我的应用程序中的任何地方调用它。事实上方法名称是“加载”有什么特别的意义吗?我还没有看到任何c ++指南讨论过类的特殊“加载”方法。

如果有人可以指出我正确的方向,请欣赏它,谢谢

3 个答案:

答案 0 :(得分:0)

唯一具有特殊意义的方法是main函数,当您启动程序时会自动调用该函数。但负载没有特别的意义。它的目的是避免在构造对象时加载数据,以防它在任何地方传递(并且所有副本最终会反复加载数据)。

简而言之,没有。它没有特别的意义。你必须在某个地方调用它。由于它是私有的,你应该检查你的构造函数。它可能正在调用Load。

答案 1 :(得分:0)

名为Load的方法没什么特别之处。如果你认为它正在被执行,它会被明确地调用。要么从你的类的另一个方法调用它,要么该类使另一个类或方法成为朋友,而另一个实体进行调用。

答案 2 :(得分:0)

关键是:

private:
    static MySettings mySettings;

这是声明MySettings的静态实例。在main()运行之前构造静态实例。 (因此,然后调用构造函数。)

在某个.cc文件中,你会发现类似这样的内容:

MySettings MySettings:mySettings;

...这是宣言的定义。

实际上,这是创建单身人士的一种有点聪明的方式。

(更新:我猜测构造函数调用Load()。)