下列代码之后的结果为()?
生活随笔
收集整理的這篇文章主要介紹了
下列代码之后的结果为()?
小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.
下列代碼之后的結(jié)果為()?
答案:adcee
解析:
1.b.f(); 基類對象直接調(diào)用基類的f()函數(shù),輸出a
2.p->f(); 派生類對象賦給基類的指針,由于f()在基類中是虛函數(shù),根據(jù)基類指針指向的對象進行調(diào)用,因此調(diào)用派生類的int f()輸出d
3.p->g();基類中g(shù)()不是虛函數(shù),調(diào)用基類的g()
4.p_const->f();常對象,又由于基類中聲明為虛,同理用派生類中的函數(shù)
5.同理
只有在通過基類指針(或引用)間接指向派生類子類型時多態(tài)性才會起作用。派生類的指針只調(diào)用自己的函數(shù)!基類指針的函數(shù)調(diào)用如果有virtual則根據(jù)多態(tài)性調(diào)用派生類的函數(shù),如果沒有virtual則是正常調(diào)用基類的函數(shù)。
總結(jié)
以上是生活随笔為你收集整理的下列代码之后的结果为()?的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: ATM信元的交换方式为?
- 下一篇: 如果有一个类是 myClass , 关于