3 6 構造中調虛函式

2021-09-10 18:24:35 字數 413 閱讀 7401

#include using namespace std;

class a361

// 建構函式中呼叫虛函式是直接呼叫a361的func(),不會走虛函式表

virtual ~a361() {}

virtual void func() // 非建構函式,若此函式在a361建構函式中呼叫,那麼還是按在建構函式中呼叫一樣的規則,不會走虛函式表(不同編譯器可能行為不同。)

virtual void test()

void go() // 非建構函式中呼叫虛函式是走的虛函式表,會發生多型

};class b361 : public a361

virtual void test()

};int main_3_6_1()

C 建構函式中呼叫虛函式

我們知道 c 中的多型使得可以根據物件的真實型別 動態型別 呼叫不同的虛函式。這種呼叫都是物件已經構建完成的情況。那如果在建構函式中呼叫虛函式,會怎麼樣呢?有這麼一段 class a virtual void func void test public int m ival class b publ...

C 建構函式中呼叫虛函式

談談關於建構函式中呼叫虛函式的情況,僅討論單繼承,不考慮虛擬繼承和多重繼承。測試平台 vs2013 win7x64 乙個例子 include include class base public virtual void func class deri public base public virtu...

構造函式呼叫虛函式

在建構函式中呼叫虛成員函式,雖然這是個不很常用的技術,但研究一下可以加深對虛函式機制及物件構造過程的理解。這個問題也和一般直觀上的認識有所差異。先看看下面的兩個類定義。struct c180 virtual foo struct c190 public c180 virtual foo 父類中有乙個...