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
广告
数据结构
网络
关系型数据库管理系统
操作系统
Java
iOS
HTML
CSS
Android
Python
C 编程
C++
C#
MongoDB
MySQL
Javascript
PHP