。
错误:对class_name::a的未定义引用
发布于 2012-03-16 21:32:36
从发布的错误中,链接器声明变量没有定义的,而不是没有显式初始化的。
class A
{
// declaration.
static int x;
};
// definition (in this case without explicit initialisation).
int A::x;链接器不应该发出错误,编译器也不应该发出警告,只要在为static变量分配初始值之前不尝试使用它。
发布于 2012-03-16 21:33:58
静态成员实际上并不存储在创建的任何对象中,因为它是在该类的所有对象之间共享的。
它应该只创建一次,即使您创建了该类的许多对象。或者即使您没有创建类的对象。所以你必须分开做。
编译器警告所有类型的非独立变量,而不仅仅是静态变量。拥有一个没有值的变量通常不是很有用,所以这些警告是好的。添加一个= 0并不太难,是吗?
https://stackoverflow.com/questions/9744722
复制相似问题