首页 > 代码库 > C++ 内接连与外接连
C++ 内接连与外接连
1、内连接与外连接的最大区别是其查找某个定义时,所采用的策略。
内连接:
对这个定义的访问被局限在当前编译单元,其他编译单元无法访问,所以在连接时,它不会和其它的编译对象(.o/.obj)对象作比较,所以这些对象,也不能通过extern来访问。(static、const、类的成员/函数)
外连接:
可被其他单元访问,那么在连接时,会在其它编译对象中查找,判断是否重复,是否被定义。
2、外连接:
即在声明时使用extern,并给出定义,在其它文件中使用时,使用extern加上声明就可
如:
在 1.cpp:
extern int num = 111;
void Test(){}
在 2.cpp:
extern int num; // 此处引用1.cpp的num
extern void Test();
3、内连接:
在1.cpp中:
static int a = 3;
const int b = 4;
class A
{
int c;
void Test(){}
};
在2.cpp中:
static int a = 5;
const int b = 6;
class B
{
int c;
void Test(){}
};
此时不会报重复定义的错误,因为其查找就在当前文件中,不会去管其它文件中的定义。
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。