Part3 简单编程练习 实验总结: 1.纯虚函数作用:在验证性部分,基类没有使用虚函数时,使用基类指针调用派生类成员函数,始终只有基类函数在起作用。而使用了纯虚函数之后,基类类型的指针,如果指向的是派生类的对象,那么它就可以访问这个函数,从而执行的是派生类中的函数。需要注意的是,纯虚函数是不能被调 ...
分类:
编程语言 时间:
2019-06-01 23:07:03
阅读次数:
146
1.(1)在多层继承中,派生类中出现与基类同名成员时,通过对象名.成员名的方式,访问的成员什么? 访问的成员是该对象名所在类的成员。 (2)通过基类指针访问派生类对象时,基类中成员函数有无关键字virtual,访问的成员分别是什么? 有virtual时访问的是派生类的成员,无virtual时访问的是 ...
分类:
其他好文 时间:
2019-05-28 22:25:07
阅读次数:
98
一、基类指针、派生类指针 父类指针可以new一个子类对象 二、虚函数 有没有一个解决方法,使我们只定义一个对象指针,就可以调用父类,以及各个子类的同名函数? 有解决方案,这个对象指针必须是一个父类类型,我们如果想通过一个父类指针调用父类、子类中的同名函数的话,这个函数是有要求的; 在父类中,eat函 ...
分类:
编程语言 时间:
2019-03-06 22:01:22
阅读次数:
164
1.RTTI 1)运行时类型识别RTTI(Run-Time Type Identification),它能够获取基类指针或引用所指向的对象的实际类型,在C++中,为了支持RTTI提供了两个运算符:typeid和dynamic_cast 2) 2.dynamic_cast 2.1概念 1)dynami ...
分类:
其他好文 时间:
2019-02-26 13:06:21
阅读次数:
176
1:每个析构函数只会清理自己的成员(成员函数前没有virtual)。2:可能是基类的指针指向派生类的对象,当析构一个指向派生类的成员的基类指针,这时程序不知道这么办,可能会造成内存的泄露,因此此时基类的析构函数要定义为虚函数;基类指针可以指向派生类的对象(多态),如果删除该指针delete[]p,就 ...
分类:
编程语言 时间:
2019-02-19 13:36:04
阅读次数:
147
1、如果一个类被继承,同时定义了基类以外的成员对象,且基类析构函数不是virtual修饰的, 那么当基类指针或引用指向派生类对象并析构(例如自动对象在函数作用域结束时;或者通过delete)时,会调用基类的析构函数而导致派生类定义的成员没有被析构,产生内存泄露等问题。虽然把析构函数定义成virtua ...
分类:
其他好文 时间:
2018-12-31 17:13:20
阅读次数:
210
虚函数的实质和用途:如果不定义虚函数,基类和扩展类中不能有同名函数(名字,参数个数顺序类型都相同),否则会发生同名覆盖,此时想用基类指针去调用扩展类的对象是行不通的;但如果将基类的成员函数定时成虚函数,相当于允许扩展类中重新定义该同名函数执行不同的功能,此时就可以用基类的指针去指向扩展类,从而调用扩 ...
分类:
编程语言 时间:
2018-12-17 02:01:15
阅读次数:
216
0.目录 1. "类型识别" 2. "动态类型识别" 3. "类型识别关键字" 4. "小结" 1.类型识别 在面向对象中可能出现下面的情况: 基类指针指向子类对象 基类引用成为子类对象的别名 静态类型——变量(对象)自身的类型 动态类型——指针(引用)所指向对象的实际类型 2.动态类型识别 C++ ...
分类:
编程语言 时间:
2018-12-10 14:16:33
阅读次数:
214
class Fruit { public: virtual void get_fruit() { std::cout<<"Fruit:getFruit"<<std::endl; } }; class Pear : public Fruit { public: virtual void get_fru... ...
分类:
其他好文 时间:
2018-10-08 20:42:20
阅读次数:
148
基类指针指向派生类,我们已经很熟了。(视频下载) (全部书籍)假如我们想用派生类反过来指向基类,就需要有两个要求:1)马克-to-win:基类指针开始时指向派生类,2)我们还需要清清楚楚的转型一下。 if you want to use derived class pointer point to ...
分类:
其他好文 时间:
2018-09-23 22:34:02
阅读次数:
235