[请问]为什么在头文件中定义的static全局变量也可以在其他文件中使用
[请教]为什么在头文件中定义的static全局变量也可以在其他文件中使用?
在类的头文件中定义了一个静态全局变量,在main.cpp中却可以用extern声明后继续使用,这是为什么呢?
代码:
//A.h
static int s_a;
class A
{
......
};
//main.cpp
extern int s_a;
int main()
{
s_a=100;
cout<<s_a;
}
------解决方案--------------------
LZ是不是在main.CPP中INCLUDE了a.h啊,否则应该是不行的
------解决方案--------------------
你是在 main.cpp 里面include了A.h了吧?如果是的话那么头文件展开以后相当于是 main.cpp 里面定义了一个 static int s_a; ,没有include的话那么编译不会给通过(或者你的编译器不符合标准)
在类的头文件中定义了一个静态全局变量,在main.cpp中却可以用extern声明后继续使用,这是为什么呢?
代码:
//A.h
static int s_a;
class A
{
......
};
//main.cpp
extern int s_a;
int main()
{
s_a=100;
cout<<s_a;
}
------解决方案--------------------
LZ是不是在main.CPP中INCLUDE了a.h啊,否则应该是不行的
------解决方案--------------------
你是在 main.cpp 里面include了A.h了吧?如果是的话那么头文件展开以后相当于是 main.cpp 里面定义了一个 static int s_a; ,没有include的话那么编译不会给通过(或者你的编译器不符合标准)