c++静态成员变量问题
.h文件只是负责向编译器声明, 不会分配存储空间, 对于static成员变量,需要在.cpp中定义变量,分配存储空间,否则 会报 undefined reference to 错误。
a.h
class a
{
static int i;
a();
}
a.c
a()
{
i=0;//报错
}
正确写法:
a.h
class a
{
static int i;
a();
}
a.c
int a::i; //加入定义
a()
{
i=0;//报错
}
.h文件只是负责向编译器声明, 不会分配存储空间, 对于static成员变量,需要在.cpp中定义变量,分配存储空间,否则 会报 undefined reference to 错误。
a.h
class a
{
static int i;
a();
}
a.c
a()
{
i=0;//报错
}
正确写法:
a.h
class a
{
static int i;
a();
}
a.c
int a::i; //加入定义
a()
{
i=0;//报错
}