extern声明符 在C和C++中用于声明变量或函数是在别处定义的,即它的存储位置(或实现)不在当前文件或编译单元中,而是在程序的其他地方。使用 extern
可以让链接器知道在链接时需要将这个声明与相应的定义(即变量的内存分配或函数的实现)关联起来。
1:如果想使用某个类对象,但在工程项目中只允许存在一个该类实例(或者可以使用单例模式):
//a.h:
class A{
A();
~A()=default;
}
extern A* a;
//a.cpp:
A::A(){
//...
}
A* a=nullptr;
对于该对象在main函数中初始化:
//main.cpp:
include "a.h"
int main(){
A aObj;
a=&aObj;
}
这样在想使用该对象的地方包含 a.h 就可以了
2:前置声明:
如果在使用某个对象的位置在该对象的定义位置之前,可以使用extern来实现:
int main(){
extern int a;
int b=a;
}
int a=100;
这样就可以在定义之前使用该对象了
本文为工作学习笔记,若有错误恳请指正