类的继承
基类和派生类
- 派生类继承基类。
class Class1//基类(父类)
{
public:
int a;
protected:
int b;
private:
int c;
};
class Class2//派生类(子类)
{
public:
protected:
private:
};
实例化派生类:
- 构造函数调用顺序:父类>>>子类。
- 析构函数调用顺序:子类>>>父类。
公有继承
class Class2:public Class1//公有继承
{
public:
int a;
protected:
int b;
private:
};
保护继承
class Class2:protected Class1//保护继承
{
public:
protected:
int a;
int b;
private:
};
私有继承
class Class2:private Class1//私有继承
{
public:
protected:
private:
int a;
int b;
};
多重继承
class ClassA {};
class ClassB:public ClassA {};
class ClassC:public ClassB {};
多继承
class ClassA {};
class ClassB {};
class ClassC:public ClassA, public ClassB {};
菱形继承
class ClassA {};
class ClassB:virtual public ClassA {};//虚继承
class ClassC:virtual public ClassA {};//虚继承
class ClassD:public ClassB, public ClassC {};
- 虚继承用以解决数据冗余问题。