父子间的赋值兼容子类对象可以当作父类对象使用(兼容性)-子类对象可以直接赋值为父类对象-子类对象可以直接初始化父类对象-父类指针可以直接指向子类对象-父类引用可以直接引用子类对象 当使用父类指针(引用)指向子类对象时-子类对象退化为父类对象-只能访问父类中定义的成员-可以直接访问被子类覆盖的同名成员 ...
分类:
其他好文 时间:
2019-11-30 09:28:59
阅读次数:
69
继承和派生概述: 继承和派生是同一个过程从不同角的度看 保持已有类的特性而构造新类的过程称为继承。 在已有类的基础上新增自己的特性而产生新类的过程称为派生。 被继承的已有类称为基类(或父类)。 派生出的新类称为派生类(或子类)。 直接参与派生出某类的基类称为直接基类。 基类的基类甚至更高层的基类称为 ...
分类:
编程语言 时间:
2019-10-13 16:59:56
阅读次数:
119
基类的private在派生类是不能被访问的不能被访问不是没有继承,继承下来了,但是没有访问的权限,我们可以通过查看子类所占的字节数查看来验证。 派生类内部都可以访问基类的公有成员和保护成员派生类对象可以赋值给基类的指针,引用,对象,但是基类一般情况下不能赋值给派生类,除非进行强制类型转换,但是强制类 ...
分类:
其他好文 时间:
2019-09-25 00:45:09
阅读次数:
125
第16课 - 继承中的构造与析构 1. 赋值兼容性原则 (1) 子类对象可以当作父类对象使用。 (2) 子类对象可以直接赋值给父类对象。 (3) 子类对象可以直接初始化父类对象。 (4) 父类指针可以直接指向子类对象。 (5) 父类引用可以直接引用子类对象。 子类就是特殊的父类 #include < ...
分类:
编程语言 时间:
2019-08-11 20:51:52
阅读次数:
105
一.同名覆盖引发的问题父子间的赋值兼容--子类对象可以当作父类对象使用(兼容性)1.子类对象可以直接赋值给父类对象2.子类对象可以直接初始化父类对象3.父类指针可以指向子类对象4.父类引用可以直接引用子类对象代码示例#include<iostream>#include<string>usingnamespacestd;classParent{public:intmi;voi
分类:
编程语言 时间:
2019-07-05 09:35:15
阅读次数:
105
多态 问题引出: 如果子类定义了与父类中原型相同的函数会发生什么?(赋值兼容性原则遇上函数重写) 函数重写: 在子类中定义与父类中原型相同的函数,函数重写只发生在父类与子类之间。 父类中被重写的函数依然会继承给子类 默认情况下子类中重写的函数将隐藏父类中的函数 通过作用域分辨符::可以访问到父类中被 ...
分类:
编程语言 时间:
2019-05-11 09:13:49
阅读次数:
133
1、继承&派生 在定义一个新的类B时,若该类与某个已有的类A相似(B拥有A的全部特点),则可以将A作为一个基类,把B作为基类的一个派生类(子类)。 在派生类的各个成员函数中,不能访问基类中的private成员。 派生类对象的体积,等于基类对象的体积+派生类对象自己的成员变量的体积。 在派生类对象中, ...
分类:
其他好文 时间:
2019-05-09 21:36:24
阅读次数:
151
0.目录 1. "同名覆盖" 2. "赋值兼容" 3. "函数重写遇上赋值兼容" 4. "小结" 1.同名覆盖 子类中是否可以定义父类中的同名成员?如果可以,如何区分?如果不可以,为什么? 父子间的冲突: 子类可以定义父类中的同名成员 子类中的成员将隐藏父类中的同名成员 父类中的同名成员依然存在于子 ...
分类:
编程语言 时间:
2018-12-08 15:43:52
阅读次数:
268
同名隐藏,子类和父类的赋值兼容规则 子类和父类的赋值兼容规则 1.同名隐藏(非常重要) 当子类的成员方法(show)和父类的成员方法(show)的名字相同的时候,父类的所有(show)方法,都不能用子类的对象来调用了,这种现象就是同名隐藏。 #include <iostream> using nam ...
分类:
其他好文 时间:
2018-09-29 13:01:56
阅读次数:
198