欧美大屁股bbbbxxxx,狼人大香伊蕉国产www亚洲,男ji大巴进入女人的视频小说,男人把ji大巴放进女人免费视频,免费情侣作爱视频

歡迎來到入門教程網(wǎng)!

C語言

當(dāng)前位置:主頁 > 軟件編程 > C語言 >

c++ 構(gòu)造函數(shù)中調(diào)用虛函數(shù)的實現(xiàn)方法

來源:本站原創(chuàng)|時間:2020-01-10|欄目:C語言|點擊: 次

我們知道:C++中的多態(tài)使得可以根據(jù)對象的真實類型(動態(tài)類型)調(diào)用不同的虛函數(shù)。這種調(diào)用都是對象已經(jīng)構(gòu)建完成的情況。那如果在構(gòu)造函數(shù)中調(diào)用虛函數(shù),會怎么樣呢?

有這么一段代碼:

class A
{
public:
  A ():m_iVal(0){test();}
  virtual void func() { std::cout<<m_iVal<<‘ ';}
  void test(){func();}
public:
int m_iVal;
};
class B : public A
{
public:
  B(){test();};
  virtual void func()
  {
    ++m_iVal;
    std::cout<<m_iVal<<‘ ';
}
};
int main(int argc ,char* argv[])
{
  A*p = new B;
  p->test();
  return 0;
}

輸出: 0 1 2

也就是說,在構(gòu)造函數(shù)中調(diào)用虛函數(shù),調(diào)用的是正在構(gòu)造的類中的虛函數(shù),而不是子類的虛函數(shù)。

理一下程序。new了一個B對象,首先要調(diào)用基類構(gòu)造函數(shù),也就是A類的構(gòu)造函數(shù)。調(diào)用test(),再調(diào)用虛函數(shù)func(),這時候用的是基類版本。之后再調(diào)用子類B的構(gòu)造函數(shù),這時調(diào)用的是子類虛函數(shù)func()。至于最后一次調(diào)用func(),根據(jù)多態(tài),調(diào)用的是真實虛函數(shù)。

以上就是小編為大家?guī)淼腸++ 構(gòu)造函數(shù)中調(diào)用虛函數(shù)的實現(xiàn)方法全部內(nèi)容了,希望大家多多支持我們~

上一篇:淺談C++中派生類對象的內(nèi)存布局

欄    目:C語言

下一篇:C++ 初始化列表詳解及實例代碼

本文標(biāo)題:c++ 構(gòu)造函數(shù)中調(diào)用虛函數(shù)的實現(xiàn)方法

本文地址:http://mengdiqiu.com.cn/a1/Cyuyan/1923.html

網(wǎng)頁制作CMS教程網(wǎng)絡(luò)編程軟件編程腳本語言數(shù)據(jù)庫服務(wù)器

如果侵犯了您的權(quán)利,請與我們聯(lián)系,我們將在24小時內(nèi)進行處理、任何非本站因素導(dǎo)致的法律后果,本站均不負(fù)任何責(zé)任。

聯(lián)系QQ:835971066 | 郵箱:835971066#qq.com(#換成@)

Copyright © 2002-2020 腳本教程網(wǎng) 版權(quán)所有