本文主要是介绍类的静态成员变量为什么不能再h文件类外初始化,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
//h文件
class Image {
public:static void AddProtoType(Image* iamge) {Prototype[nsize_++] = iamge;}private:static Image* Prototype[10];static int nsize_;
};int Image::nsize_ = 0;
Image* Image::Prototype[];
报错如下:
原因:
静态成员属于整个类,而不属于某个对象。静态变量初始化出现在头文件中,那么包含了该头文件的所有源文件中都定义了这些变量,即该头文件被包含了多少次,这些变量就定义了多少次。同时编译时会出现类内部和类外重定义的错误。
这篇关于类的静态成员变量为什么不能再h文件类外初始化的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!