覆蓋是占用了原來的位置,隱藏只是存在找不到
例如:class a{
void fun1(){
int v;
static void fun2(){
int v;
class b extends a{
void fun1(){
int u;
static void fun2(){
int u;
a a=new b();
a.fun1()//呼叫的是b中的fun1因為父類的被覆蓋了不存在了,只有通過特殊手法找到。
a.fun2()//呼叫的是a中的fun2因為fun2只是被b暫時隱藏,還存在。
關於c++類成員函式的過載、覆蓋、隱藏與virtual關鍵字
最近看《高質量c++>>時讀到的關於成員函式的過載/覆蓋/隱藏,把我的一點理解寫出來,希望大家批評與指正.
1. 過載、覆蓋與隱藏
1).過載:成員函式具有以下的特徵時發生「過載」
a.相同的範圍(同乙個類中)
b.函式的名字相同
c.引數型別不同(不能進行隱式型別轉換)
d.virtual關鍵字可有可無
2).覆蓋(也叫「繼承」):指派生類函式覆蓋基類函式,特徵是:
a.不同的範圍(分別位於基類與派生類中)
b.函式名字相同
c.引數相同
d.基類函式必須有virtual關鍵字
3).隱藏:是指派生類的函式遮蔽了與其同名的基類函式,規則如下:
a.如果派生類的函式與基類的函式同名,但是引數不同,此時不論有無virtual關鍵字,基類的函式都將被隱藏,注意別與過載混淆)
b.如果派生類的函式與基類的函式同名,並且引數也相同,但是基類函式沒有virtual關鍵字,此時基類的函式被隱藏(注意別與覆蓋混淆)
我的話費充值店
-各種面額
電信100元**98.60
聯通100**99.00
移動100**99.30
隱藏與覆蓋
成員函式的過載 overload 覆蓋 override 與隱藏很容易混淆,c 程式設計師必須要搞清楚概念,否則錯誤將防不勝防。1 過載與覆蓋 成員函式被過載的特徵 1 相同的範圍 在同乙個類中 2 函式名字相同 3 引數不同 4 virtual 關鍵字可有可無。覆蓋是指派生類函式覆蓋基類函式,特徵...
覆蓋與隱藏
下面程式的輸出是 class a virtual void fun class b public a void fun int main void a.121434 b.121414 c.121232 d.123434 b首先宣告為a型別的指標指向實際型別為a的物件,呼叫的肯定是a的方法,輸出1 2...
過載 覆蓋與隱藏
一 總結如下表 函式名均相同 引數返回值型別 virtual有無 類別父類子類間 方法為public 繼承為public同同 必須有override同異 有編譯不通過同 均可無hide異均可 無關hide 同一類內同異 無關編譯不通過異 均可無關 overload 二 幾點說明 override 重...