c++基类,派生类 ,接口,继承方式

基类通常应该定义一个虚析构函数;

基类用virtual关键字声明的虚函数可以在派生类中重新定义,在派生类中重新定义时最好也加上virtual关键字
通过指针或引用调用的虚函数在运行时才会被解析,其他函数在编译时就会被解析。

动态绑定(多态):

用一个基类的引用(或指针)调用一个虚函数时,传入不同的派生类或者基类将调用不同的函数实现。
基类引用可以指向派生类是因为派生类含有基类的部分,编译器 会隐式转换。

class A
{
protected:
int a, b;
};
class  AA: public A
{
protected:
int c;
};

基类构造函数:

A(int _a, int _b):a(_a),b(_b) {}

派生类构造函数:

AA(const AA& myAA):A(myAA), c(myAA.c){}

派生类赋值运算符重载:先调用基类的赋值运算符

AA& operator=(const AA& myAA)
{
A::operator=(myAA);
c=myAA.c;
}

派生类到基类的转换只对引用和指针类型有效,派生类和基类不能直接转换,但是基类的拷贝构造函数和赋值操作符要传一个基类的常引用,所以可以传派生类。

构造析构顺序:

构造时:先构造基类成员,再构造派生类成员
析构时:先析构派生类成员,再析构基类成员

派生访问说明符:class默认private继承 struct默认public继承

在这里插入图片描述

友元关系不能继承,基类的友元不是其派生类的友元。

猜你喜欢

转载自blog.csdn.net/shayne000/article/details/88568515