猿问

小白 求解释 C++ 类内的成员函数 自带extern ~~ 谢谢!!

最近在看c++中  .dll的实现。。看到 extern 关键字  。。 有些疑惑。。在C语言中 extern关键字用来表明该函数 或 变量 在 本文件外部有定义。。会在链接时自动处理。。而且 由于默认情况下 extern可以省略(在定义时和声明时)。故只要写出函数原型或变量声明 即可 调用外部函数 或 变量。。  
那在c++中呢?对于一般的 全局函数 及 变量 我能理解 应该和C是一样的 。。但是对于类的声明 和 实现呢? 这里就有点糊涂了?一般对于类的定义(即声明)是写在头文件中的。。而实现是在 对应的 .cpp文件中  之前只是了解了 如何使用。。只要在别处要用时包含对应的头文件即可。。
如今想弄明白缘由。。。。不知道是否就是 C中extern的实现呢 ?   头文件中的就是对于这个类的声明 .cpp中就是对应的实现 都省略了 extern关键字 ?? 不知是不是一开的思路就错了  。。。  T - T

求大触,,解释一下。。最好能细一点  。。。

谢谢

慕粉3379761
浏览 3079回答 1
1回答

onemoo

你对C语言中extern的理解差不多是正确的。C++中extern对函数和变量的作用差不多。不管是在C还是C++中,extern都是一种storage class specifier,会影响被修饰对象的生存期和链接性。但是extern是不能修饰class成员的!C++的类定义一般单独写在头文件中,那是因为其他要使用这个类的代码需要知道该类的定义,这样方便include类定义。 含有类实现的代码文件自然就在开头先include自己的类定义——省得再重写一遍类自己的定义了。 这和extern关键字没关系,这是“头文件”和“实现文件”如何组织的问题。
随时随地看视频慕课网APP
我要回答