C++ 内部机制?


本文将介绍类内部机制。在此之前,我们将介绍与内部机制相关的默认构造函数。所谓默认构造函数,就是不接受任何参数的构造函数(由用户或编译器定义)。现在我们不禁会问,为什么要使用默认构造函数?

如果未给出默认构造函数,编译器将隐式声明默认构造函数。默认构造函数用于初始化一些类内部。它不会影响类的成员数据。编译器在一些不同的情况下会插入默认构造函数。假如一个类派生自具有默认构造函数的另一类,或者一个类包含具有默认构造函数的某个其他类的对象。编译器会插入代码,以便为基类或当前对象中放置的对象调用默认构造函数。

让我们来看一个示例,以了解这一概念。

示例

#include<iostream>
using namespace std;
class Base {
   public:
      // compiler will create one constructor for the class "Base"
};
class ClassA {
   public:
   ClassA(){
      cout << "ClassA Constructor defined by user" << endl;
   }
   int x; //it will not be initialized
};
class ClassB : public ClassA {
   //compiler will create ClassB constructor and add some code to call
   ClassA constructor
};
class ClassC : public ClassA {
   public:
      ClassC() { //user defined consturctor, but compiler will add
         code to call A constructor
         cout << "User defined ClassC Constructor" << endl;
   }
};
class ClassD {
   public:
      ClassD(){
         // User defined default constructor. The compiler will add
         code to call object of ClassA
         cout << "User-defined consturctor for ClassD Constructor" <<
         endl;
   }
   private:
      ClassA obj;
};
int main() {
   Base baseObj;
   ClassB b;
   ClassC c;
   ClassD d;
}

输出

ClassA Constructor defined by user
ClassA Constructor defined by user
User defined ClassC Constructor
ClassA Constructor defined by user
User-defined consturctor for ClassD Constructor

更新于: 2019 年 7 月 31 日

185 次浏览

开启您的 职业生涯

完成课程后获得认证

入门
广告