[英]Static member variable initialization
如下所示。 如何为static member
变量使用alphabet's
自己的成员函数初始化alphabet
? 我需要从“ 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") };
选项1:应在.cpp(实现文件,在您的情况下为Text.cpp)中重新定义类中声明的所有静态变量,您应在定义中初始化变量。
选项2:在“文本”类中添加新的静态方法(函数)以初始化静态成员。 由于您的静态数据成员在private部分中。 在公共部分声明该方法。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.