昨天看了新泰科技的笔试题。
第一个感觉...下届的基础太差。
然后发现一个有趣的题:c++全局变量在其他的cpp文件中怎么使用?
我的第一感觉是直接使用。不过感觉加"include"和"::"这样回答更好,顺便问了下同寝的人。发现完全不同的答案,他说要使用每一个cpp里都要加extern...我俩僵持不下,于是开启vs2005,开始编程验证。然后发现如果是一个cpp文件,怎么做都是对的。如果两个或多个cpp文件,正确的格式是这样的
oo.h中
#ifndef OO
#define OO
extern int a;//注意这里一定不能赋值
#endif
oo.cpp中
#include <iostream>
using namespace std;
int a = 10;//定义a变量
void func(){ a = 20;cout << a;}
xx.cpp中
#include <iostream>
#include "oo.h"
using namespace std;
int main()
{
cout << a;//这里a打印10这说明oo.cpp中的a = 10先被执行。
func();
}
这好像是一种正确的做法,不知道还有没有其他做法