自定义一个类A,想声明一个全局的A指针。下边这种做法问题在哪?
在res.h中声明
extern A *a;
在res.cpp中
A *a= new A();
这样做问题在哪?求教大神
这里是不是应该这样:
A *a= &(new A());
A *a= NULL;
a = new A();
这样好一点
试了一下,这样用是没有问题的,全局变量处理的时间点比程序运行要早
刚刚新建了一个项目测试了一下,必须有一个文件中声明时需要这样:
extern A *a = NULL;
其它文件中用就是:
extern A *a;
就可以了。
在res.cpp中
a= new A();
楼主的code编译过程中,编译器会报错,错误应该是重复定义,原因就是,全局变量已经定义了A *a,局部变量定义A*a时会报错。
res.hpp中
extern A *a;
在res.cpp中
a= new A();