如下所示。如何使用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"));
答案 0 :(得分:3)
假设Alphabet有一个参数化构造函数,你可以在一个翻译单元(在Text.cpp文件中)这样做,
Alphabet Text::alphabet[] = { ("./Alphabet/", "Arial", ".xml"),
("./Alphabet/", "Menlo", ".xml"),
("./Alphabet/", "Times", ".xml") };
答案 1 :(得分:1)
选项1:类中声明的所有静态变量都应该在.cpp(实现文件,在你的Text.cpp中)中重新定义,你应该在定义中初始化变量。
选项2:在“Text”类中添加一个新的静态方法(函数)来初始化静态成员。 由于你的静态数据成员在私有部分。在公共部分声明方法。