派生类在构造函数被调用之前会先调用基类的构造函数。特别地,如果派生类的带参数的构造函数被调用,编译器默认会先让程序调用基类不带参数的构造函数,有可能造成不希望的效果。这时需要在派生类的构造函数的初始化列表里显式地、带参数地初始化基类
Code:

#include 
using namespace std;

class A {
public:
	A() {
		cout << "A()" << endl; 
	}
	A(int x) {
		cout << "A(int)" << endl;	
	}
};

class B : public A {
public:
	B() {
		cout << "B()" << endl;
	}
	B(int x) : A(x) {
		cout << "B(int)" << endl;	
	}
};

int main() {
	B b1;
	B b2(10);
	return 0;
}

Output:

A();
B();
A(int);
B(int);