欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

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

 更新時間:2016年12月21日 09:59:27   投稿:jingxian  
下面小編就為大家?guī)硪黄猚++ 構造函數(shù)中調用虛函數(shù)的實現(xiàn)方法。小編覺得挺不錯的,現(xiàn)在就分享給大家,也給大家做個參考。一起跟隨小編過來看看吧

我們知道:C++中的多態(tài)使得可以根據(jù)對象的真實類型(動態(tài)類型)調用不同的虛函數(shù)。這種調用都是對象已經(jīng)構建完成的情況。那如果在構造函數(shù)中調用虛函數(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

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

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

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

相關文章

  • 使用pybind11封裝C++結構體作為參數(shù)的函數(shù)實現(xiàn)步驟

    使用pybind11封裝C++結構體作為參數(shù)的函數(shù)實現(xiàn)步驟

    這篇文章主要介紹了用pybind11封裝C++結構體作為參數(shù)的函數(shù)實現(xiàn)步驟,本文分步驟通過實例代碼給大家介紹的非常詳細,具有一定的參考借鑒價值,需要的朋友可以參考下
    2020-02-02
  • C++鏈式二叉樹深入分析

    C++鏈式二叉樹深入分析

    二叉樹的鏈式存儲結構是指,用鏈表來表示一棵二叉樹,即用鏈來指示元素的邏輯關系。通常的方法是鏈表中每個結點由三個域組成,數(shù)據(jù)域和左右指針域,左右指針分別用來給出該結點左孩子和右孩子所在的鏈結點的存儲地址
    2022-06-06
  • C 語言常用方法技巧

    C 語言常用方法技巧

    本文主要介紹了C語言常用方法技巧。具有很好的參考價值,下面跟著小編一起來看下吧
    2017-03-03
  • C++實現(xiàn)學生選課系統(tǒng)

    C++實現(xiàn)學生選課系統(tǒng)

    這篇文章主要為大家詳細介紹了C++實現(xiàn)學生選課系統(tǒng),具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2019-02-02
  • C++語言設計實現(xiàn)五子棋

    C++語言設計實現(xiàn)五子棋

    這篇文章主要為大家詳細介紹了C++語言設計實現(xiàn)五子棋,包括數(shù)據(jù)結構和對象設計及主函數(shù)調用實現(xiàn),具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2018-09-09
  • VC使用編譯時間作為版本號標識的方法

    VC使用編譯時間作為版本號標識的方法

    這篇文章主要介紹了VC使用編譯時間作為版本號標識的方法,需要的朋友可以參考下
    2017-03-03
  • C語言開發(fā)實現(xiàn)井字棋及電腦落子優(yōu)化示例詳解

    C語言開發(fā)實現(xiàn)井字棋及電腦落子優(yōu)化示例詳解

    以前上課經(jīng)常和同桌玩起井字棋,那么我們就當我們回憶童年,現(xiàn)在也用C語言來實現(xiàn)井字棋,本次代碼相對于初階的井字棋,在電腦下棋代碼部分做了優(yōu)化,使得電腦更加具有威脅
    2021-11-11
  • 對C++默認構造函數(shù)的一點重要說明

    對C++默認構造函數(shù)的一點重要說明

    下面小編就為大家?guī)硪黄獙++默認構造函數(shù)的一點重要說明。小編覺得挺不錯的,現(xiàn)在就分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2016-12-12
  • Jsoncpp的安裝與使用方式

    Jsoncpp的安裝與使用方式

    JsonCpp是一個用于解析和生成JSON數(shù)據(jù)的C++庫,它支持解析JSON文件或字符串到C++對象,以及將C++對象序列化回JSON格式,安裝JsonCpp可以通過命令安裝,默認安裝動態(tài)庫,JsonCpp的使用主要涉及三個類:Json::Value用于表示JSON值
    2025-01-01
  • c++標準庫讀寫ini文件的實現(xiàn)示例

    c++標準庫讀寫ini文件的實現(xiàn)示例

    本文介紹了一個完整的INI文件類的實現(xiàn),包含讀取和寫入操作,通過IniFile.h頭文件和IniFile.cpp實現(xiàn)文件,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2024-10-10

最新評論