永发信息网

为什么用父类指针指向子类对象

答案:2  悬赏:40  手机版
解决时间 2021-02-06 15:11
  • 提问者网友:献世佛
  • 2021-02-06 01:38
为什么用父类指针指向子类对象
最佳答案
  • 五星知识达人网友:拾荒鲤
  • 2021-02-06 02:07
lass A { public: virtual void foo() { printf("aa1\n"); } virtual v...
答:如果是通过对象名调用虚函数(如b.foo()),在编译阶段就能确定调用的是哪一个类的虚函数,所以属于静态联编。如果是通过基类指针调用虚函数(如a->foo()),在编译阶段无法从语句本身确定调用哪一个类的虚函数,只有运行时,a指向某一类对象后
全部回答
  • 1楼网友:老鼠爱大米
  • 2021-02-06 02:27
为什么指向父类的函数指针不能指向子类的函数(不谈强制类型),而指向子类的函数指针可以指向父类函数,这个问题呢?当然啦,因为子类继承了父类,所以说他里面就有了父类的函数,所以可以指向啊,但是父类里没有子类的函数,就像结构体指针一样,他怎么能指向一个结构体里根本就没有的变量呢4.static 顾名思义,就是静态的,他是方法的,他属于这个类,由于是类的方法,他可以直接引用类名来引用方法,也可以通过类的对象来引用这个方法,他既不能被子类覆盖,也不能被子类继承。简单的说,他是在编译的时候就和类帮定在一起了,不能被运行时动态加载。——没覆盖也没继承,子类存有指向父类的引用
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯