//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[];
报错如下:
原因:
静态成员属于整个类,而不属于某个对象。静态变量初始化出现在头文件中,那么包含了该头文件的所有源文件中都定义了这些变量,即该头文件被包含了多少次,这些变量就定义了多少次。同时编译时会出现类内部和类外重定义的错误。