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