-
4,virtual不能修饰普通函数;他不能修饰静态成员函数,如果他修饰静态成员函数,他不属于任何一个对象,他是和类同生共死的;他不能修饰内联函数,如果修饰内联函数,他会忽略掉inline而使其成为普通函数;virtual不能修饰构造函数。查看全部
-
3,父类的指针指向的是哪个对象,就会先执行这个对象的构造函数,然后再指向其父类的构造函数,于是能够保证内存不被泄漏查看全部
-
2,因为在circle中定义了一个指针,并且在circle的构造函数中申请了一块内存,所以当通过父类的指针销毁子类的对象(circle)时会造成内存泄漏。我们可以用虚析构函数来解决这个问题查看全部
-
1,在多态中要想通过父类的指针去删除子类的对象时最容易出问题,如果delete后面跟的是父类的指针,那么他只执行父类的析构函数,如果跟的是子类的指针,那么它既指向父类的析构函数,又指向子类的析构函数。查看全部
-
1,计算面积的函数一定要与父类中计算面积的函数完全同名,包括参数,包括函数名本身,包括返回值。查看全部
-
4,在想要实现多态的成员函数前面加关键字virtual,virtual可以继承,此时再用父类指针指向子类对象时,此时调用到的就是子类自己的计算面积。查看全部
-
3,动态多态必须以封装和继承为基础,动态多态起吗有两个类,此时再用以前的知识是无法实现动态多态的,此图调用的都是父类的计算面积,因此我们可以用虚函数来实现。查看全部
-
2,程序在运行之前,在编译阶段就已经确定下来到底要使用哪个函数了,可见很早的就已经将函数编译进去了,我们就把这种情况(函数重载)叫做早绑定也叫做静态多态查看全部
-
1,多态的概念查看全部
-
3,RTTI运行值类型识别,异常处理,隐藏,覆盖,早绑定,晚绑定,虚函数表是多态当中的核心查看全部
-
2,普通虚函数,虚析构函数,纯虚函数,抽象类,接口类查看全部
-
1,面向对象的三大特征查看全部
-
你好,父类引用子类对象有很多好处,我举个这样一个例子 像你上面这个person有子类men对吧,我们再来个子类women。 于是你要写了一个数组,所有person的数组,就可以容纳men和women了。 也就是person[] a=new person[]{new men("小明"),new women("小红")}; 这其实就是一个父类引用指向子类对象。 如果你用子类数组想包括各种子类对象,就办不到了对吧 ------------------------------------------------------------------------------------------- 另外,子类之所以是子类,必然有跟父类不一样的属性或者方法,如果用父类都能完成的,何必还要再继承出个一模一样的子类呢对吧查看全部
-
听不懂查看全部
-
RTTI运行时类型识别 运用typeid时必有头文件#include<typeinfo>查看全部
举报
0/150
提交
取消