我有一个类应该从main()全局声明,并从程序中的其他声明的类访问,我该怎么做?
class A{
int i;
int value(){ return i;}
};
class B{
global A a; //or extern??
int calc(){
return a.value()+10;
}
}
main(){
global A a;
B b;
cout<<b.calc();
}
答案 0 :(得分:8)
你可能真的不想这样做,但如果你必须 - 在包含main的文件中:
#include "A.h"
A a;
int main() {
...
}
然后在需要访问全局的文件中:
#include "A.h"
extern A a;
您需要在A.h头文件中放置A的声明才能使其正常工作。
答案 1 :(得分:1)
在C ++中声明一个类的全局实例是一个禁忌。
您应该使用单例模式,它为您提供可从整个应用程序访问的单个对象实例。
你可以找到很多关于C ++单例实现的文献,但wikipedia是一个很好的起点。
已经在stackoverflow上讨论了