对C++部分知识理解与梳理(郭玮网课视角)
1.继承和派生
2.虚函数和多态
3.运算符重载的理解
4.类和对象提高
一.继承与派生
1.基本定义
继承与派生是同一个过程从不同的角度看:
保持已有类的特性而构成新类的过程称为继承
在已有类的基础上新增自己的特性而产生新类的过程称为派生
被继承的已有类成为基类(父类)base class
派生出的新类称为派生类(子类)derived class
2.派生存储
派生类的存储结构如下
3.派生函数的构造
由上述存储结构也可大致推断出,函数先构造基类成员,再构造派生类的成员。在创建派生类对象,需要先调用派生类对象中基类的构造对象,不然编译器无法进一步向下进行
4.public继承的赋值兼容规则
但需要注意的是,(由于没有使用虚函数)对于基类指针指向的内容,只能调用基类对象函数和成员。现以下部分代码为例解释:
//看着像多态.cpp
#include<iostream>
using namespace std;
class B {
private:
int nBVal;
public:
void Print()
{
cout << "nBVal=" << nBVal << endl;
}
void Fun()
{
cout << "B::Fun" << endl;
}
B(int n) {
nBVal = n; }
};
class D: public B {
private