最近在看c++中 .dll的实现。。看到 extern 关键字 。。 有些疑惑。。在C语言中 extern关键字用来表明该函数 或 变量 在 本文件外部有定义。。会在链接时自动处理。。而且 由于默认情况下 extern可以省略(在定义时和声明时)。故只要写出函数原型或变量声明 即可 调用外部函数 或 变量。。 那在c++中呢?对于一般的 全局函数 及 变量 我能理解 应该和C是一样的 。。但是对于类的声明 和 实现呢? 这里就有点糊涂了?一般对于类的定义(即声明)是写在头文件中的。。而实现是在 对应的 .cpp文件中 之前只是了解了 如何使用。。只要在别处要用时包含对应的头文件即可。。如今想弄明白缘由。。。。不知道是否就是 C中extern的实现呢 ? 头文件中的就是对于这个类的声明 .cpp中就是对应的实现 都省略了 extern关键字 ?? 不知是不是一开的思路就错了 。。。 T - T求大触,,解释一下。。最好能细一点 。。。谢谢
1 回答
已采纳
onemoo
TA贡献883条经验 获得超454个赞
你对C语言中extern的理解差不多是正确的。
C++中extern对函数和变量的作用差不多。不管是在C还是C++中,extern都是一种storage class specifier,会影响被修饰对象的生存期和链接性。但是extern是不能修饰class成员的!
C++的类定义一般单独写在头文件中,那是因为其他要使用这个类的代码需要知道该类的定义,这样方便include类定义。 含有类实现的代码文件自然就在开头先include自己的类定义——省得再重写一遍类自己的定义了。 这和extern关键字没关系,这是“头文件”和“实现文件”如何组织的问题。
- 1 回答
- 0 关注
- 3078 浏览
添加回答
举报
0/150
提交
取消