C++中关与类定义全局变量的问题

我要定义一个类的全局对象,可不可以在类的定义之前定义这个全局对象,比如:
#ifndef CLASSA
#define CLASSA
CLASSA temp;
class CLASSA{
private:···
public:···
};
#endif
这样把temp这个对象在定义类之前定义,这样可不可以,原理是什么?

可以啊,只是一个提前声明而已,编译器做个标记,并不需要用到具体实现
温馨提示:答案为网友推荐,仅供参考
第1个回答  2011-06-09
这样是可以,不过不是很好,
你可以这样:
extern CLASSA temp;
然后在第一次使用temp的前面
CLASSA temp;
这样就可以了
第2个回答  2011-06-09
你可以在定义CLASSA之前声明一个指向CLASSA类型的指针,CLASSA* pTemp;但不能定义一个对象。因为定义一个对象时,编译器需要为该对象分配相应内存,但你还没有定义CLASSA,编译不知道该怎样给temp分配内存,指针就好办了,一律是4字节大小
第3个回答  2011-06-09
不行。。因为不能识别CLASSA是什么东西。
第4个回答  2011-06-10
可以用 extern 来扩展类的作用域
相似回答