一、基本概念
- 一个基类可以派生多个派生类,一个派生类也可以由多个基类派生而成
- 继承
- 单一继承
- 多重继承
- 继承方式(缺省默认:private)
- public
- private
- protected
公有继承 | 保护继承 |
私有继承 | |
公有成员 |
public | protected | private |
保护成员 | protected | protected | private |
私有成员 | 不可见 | 不可见 | 不可见 |
- 基类的 private 成员不可以被继承
二、派生类的构造及析构
#include <iostream>
using namespace std;
class a1
{
public:
a1()
{
cout << "a1 Constructor called" << endl;
}
~a1()
{
cout << "a1 Destructor called" << endl;
}
};
class a2
{
public:
a2()
{
cout << "a2 Constructor called" << endl;
}
~a2()
{
cout << "a2 Destructor called" << endl;
}
};
class Derived : public a1, public a2
{
public:
Derived()
{
cout << "Derived Constructor called" << endl;
}
~Derived()
{
cout << "Derived Destructor called" << endl;
}
};
int main()
{
Derived obj;
return 0;
}
输出结果:
a1 Constructor called
a2 Constructor called
Derived Constructor called
Derived Destructor called
a2 Destructor called
a1 Destructor called
在定义一个派生类对象时,构造函数的调用顺序:
基类 >>> 派生类对象成员(按定义顺序) >>> 派生类
析构函数调用顺序恰好相反
//将 Derived 修改如下
class Derived : pu