求大神指导,这张图片上的引用是怎么回事儿

图片说明

3个回答

因为你没有给出A B类的代码,只有调用的代码,只能反过来推。
A &m = a;
m = b; 其实这两句中第一句没有意义,相当于 A &m = b;结果静态绑定输出A,说明你的display不是虚函数,所以派生类没有覆盖它。

qq_35178267
咆哮的兔霸霸 是虚函数,第三行的指针实现了多态
3 年多之前 回复

首先头两个B可以确定,A是基类,B是派生类,并且重写了虚函数display。
第三个是A是因为用基类引用一个派生类对象,由于派生类对象也是基类的对象,所这种引用是安全的,但是只能引用基类成员。
所以调用基类的display函数,输出A

NK_test
NK_test 回复qq_35178267: 指针和引用都可以实现多态的啊,但是你最后的m=b这句只是普通的赋值,并不操纵虚函数表,所以不能实现多态。
3 年多之前 回复
qq_35178267
咆哮的兔霸霸 你的意思是引用不能实现多态么?
3 年多之前 回复

大神再看看,感觉引用和多态的关系很微妙啊图片

Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
立即提问