如下所述。如何使用alphabet自己的成员函数为alphabet's变量初始化static member?我需要从“ Text.cpp”实现文件中进行初始化。

Text.h

class Text {
private:

    struct Font {
        enum Enum {
            Arial,
            Menlo,
            Times
        };
    };

    static Alphabet alphabet[3]; // library of letters

}; // class


我需要如下所示的东西,只是完成任务的正确方法。在运行期间,我还只需要初始化一次alphabet,因此我已将alphabet设为静态。谢谢。 ^^

Text.cpp

Alphabet Text::alphabet[Text::Font::Arial].Load("./Alphabet/", "Arial", ".xml"));
Alphabet Text::alphabet[Text::Font::Menlo].Load("./Alphabet/", "Menlo", ".xml"));
Alphabet Text::alphabet[Text::Font::Times].Load("./Alphabet/", "Times", ".xml"));

最佳答案

假设Alphabet具有参数化的构造函数,则可以在单个翻译单元(在Text.cpp文件中)中以这种方式进行操作,

Alphabet Text::alphabet[] = { ("./Alphabet/", "Arial", ".xml"),
                              ("./Alphabet/", "Menlo", ".xml"),
                              ("./Alphabet/", "Times", ".xml") };

关于c++ - 静态成员变量初始化,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/16517427/

10-11 18:40