#include
#include
using std::cout ;
class base
void testfunction()
};class derived : public base
int main()
void testfunction() };
class derived : public base
}; int main()
輸出:base
derived
指向子類derived的父類指標b呼叫了父類的base::testfunction,指向子類derived的子類指標d呼叫了子類derived::testfunction,說明非虛函式不具有多型性
#include
#include
using namespace std;
class base
void testfunction()
private:
virtual void sayhello() };
class derived : public base
private:
virtual void sayhello() };
int main()
輸出:derived
derived
說明private的虛函式可以有多型。
子類函式對父類同名函式的覆蓋
先看一道題 class b void f double const class d public b int main 答案 3個呼叫全部呼叫子類的f void 但由於後兩個不能轉換為void 編譯出錯。void 是可以指向任何型別的指標。c 中,只有int 0可以轉換為指標型,其餘均不可以,所以出...
C 子類函式對父類同名函式的覆蓋
class b public void f int const cout b.int endl void f double const cout b.double endl class d public b public void f void const cout d.void endl int ...
C 子類父類成員函式的覆蓋和隱藏例項詳解
函式的覆蓋 覆蓋發生的條件 1 基類必須是虛函式 使用virtual 關鍵字來進行宣告 2 發生覆蓋的兩個函式分別位於派生類和基類 3 函式名和引數列表必須完全相同 函式的隱藏 隱藏發生的條件 1 子類和父類的函式名相同,引數列表可以不一樣 看完下面的例子就明白了 include iostream ...