第16课 - 继承中的构造与析构 1. 赋值兼容性原则 (1) 子类对象可以当作父类对象使用。 (2) 子类对象可以直接赋值给父类对象。 (3) 子类对象可以直接初始化父类对象。 (4) 父类指针可以直接指向子类对象。 (5) 父类引用可以直接引用子类对象。 子类就是特殊的父类 #include < ...
分类:
编程语言 时间:
2019-08-11 20:51:52
阅读次数:
105
第24课 - 专题四经典问题解析 1. 历史的痕迹 #include <cstdlib> #include <iostream> using namespace std; template<class T> //以前是用typename定义,现在是用class定义 T Minus(T a, T b) ...
分类:
编程语言 时间:
2019-08-11 20:42:54
阅读次数:
106
一.同名覆盖引发的问题父子间的赋值兼容--子类对象可以当作父类对象使用(兼容性)1.子类对象可以直接赋值给父类对象2.子类对象可以直接初始化父类对象3.父类指针可以指向子类对象4.父类引用可以直接引用子类对象代码示例#include<iostream>#include<string>usingnamespacestd;classParent{public:intmi;voi
分类:
编程语言 时间:
2019-07-05 09:35:15
阅读次数:
105
“多态”的关键在于通过基类指针或引用调用一个虚函数时,编译时不确定到底调用的是基类还是派生类的函数,运行时才确定 这叫“动态联编”。“动态联编” 底是怎么实现的呢? 多态实现的关键 虚函数表每一个有虚函数的类(或有虚函数的类的派生类)都有一个虚函数表,该类的任何对象中都放着虚函数表的指针。虚函数表中 ...
分类:
编程语言 时间:
2019-06-24 23:58:21
阅读次数:
236
一.虚函数的定义 被virtual关键字修饰的成员函数,目的是为了实现多态 ps: 关于多态【接口和实现分离,父类指针指向子类的实例,然后通过父类指针调用子类的成员函数,这样可以让父类指针拥有多种形态,所以称之为多态】 二.虚函数表 该表为一个类的虚函数的地址表,用于解决继承和覆盖的问题 1.拥有虚 ...
分类:
编程语言 时间:
2019-06-07 11:02:56
阅读次数:
103
一、验证性实验 1. 在多层继承中,派生类中出现与基类同名成员时,通过对象名.成员名的方式,访问的成员什么? 对象名.成员名:派生类对象 2. 通过基类指针访问派生类对象时,基类中成员函数有无关键字virtual,访问的成员分别是什么? 基类指针:有关键字时访问派生类,无关键字访问基类对象 二、编程 ...
分类:
其他好文 时间:
2019-06-02 16:04:28
阅读次数:
113
Part3 简单编程练习 实验总结: 1.纯虚函数作用:在验证性部分,基类没有使用虚函数时,使用基类指针调用派生类成员函数,始终只有基类函数在起作用。而使用了纯虚函数之后,基类类型的指针,如果指向的是派生类的对象,那么它就可以访问这个函数,从而执行的是派生类中的函数。需要注意的是,纯虚函数是不能被调 ...
分类:
编程语言 时间:
2019-06-01 23:07:03
阅读次数:
146
1.(1)在多层继承中,派生类中出现与基类同名成员时,通过对象名.成员名的方式,访问的成员什么? 访问的成员是该对象名所在类的成员。 (2)通过基类指针访问派生类对象时,基类中成员函数有无关键字virtual,访问的成员分别是什么? 有virtual时访问的是派生类的成员,无virtual时访问的是 ...
分类:
其他好文 时间:
2019-05-28 22:25:07
阅读次数:
98
兼容性: 1. 子类对象可以直接赋值和初始化父类对象。 2. 父类对象指针可以直接指向子类对象。 3. 父类对象引用可以直接引用子类对象。 当使用父类指针或引用指向子类对象时: 1. 子类对象退化为父类对象 2. 只能访问父类中定义的成员。 3. 可以直接访问被子类覆盖的同名成员。 函数重写: 1. ...
分类:
其他好文 时间:
2019-05-11 12:12:57
阅读次数:
120
封装就是把一些具体的功能实现写在一个文件内,留给外部一个接口,调用者通过接口调用方法,实现功能。 继承就是子类继承父类的所有属性和方法,然后在新增自己的属性跟该方法。 多态是父类有的方法,子类重载时调用自己的方法,或者是父类指针指向子类对象时,调用方法,如果子类有重载就调用子类的,如果没有就调用父类 ...