#include <iostream>
using namespace std;
class base
{
static base* mybase;
};
base::mybase = NULL;
char* str = "hello world";
int main()
{
std::cout<<"hello world"<<std::endl;
return 0;
}
为什么代码行“base::mybase = NULL”编译器错误!
#include <iostream>
using namespace std;
class base
{
static base* mybase;
};
base::mybase = NULL;
char* str = "hello world";
int main()
{
std::cout<<"hello world"<<std::endl;
return 0;
}
为什么代码行“base::mybase = NULL”编译器错误!
你也需要给出类型。的类型mybase
是base*
:
base* base::mybase = NULL;
这定义了 a base*
,它是 的成员,base
被调用mybase
并将其初始化为NULL
。
您还应该在该行中给出变量的类型:
base* base::mybase = NULL;
为什么代码行
base::mybase = NULL
编译错误!
因为它不是一个有效的声明。这将是一个有效的赋值表达式(在可以访问类基私有成员的上下文中),但您不能在命名空间范围内拥有表达式语句。
要提供静态成员的定义,请使用
base* base::mybase = NULL;