答案:
#include
using
namespace
std;
class b
void fun()
b ( int n )
};class d:public b
};int main()
/*d::fun
b::fun
d::fun
nbval=2
nbval=24
ndval=8
b::fun
nbval=12
*/
#include
using
namespace
std;
class a ;
void do()
};class b:public a
};class c:public b
};void call(
b &p // 這個位置,設定為b的引用,由於b的do是虛函式,因此c的函式d也是虛函式,呼叫c的do函式,
// 但是呼叫fun是由於繼承,因此呼叫到了a的fun方法。
) int main()
/*a::fun
c::do
*/
#include
using
namespace
std;
class a
virtual ~a()
};class b:public a
};int main()
/*destructor b
destructor a
*/
4、怎麼又是fun和do
#include
using
namespace
std;
class a ;
virtual
void do()
};class b:public a
};class c:public b
};void call(a *p)
int main()
/*a::fun
a::do
a::fun
c::do
*/
LUA物件導向程式設計(三)多型
先來了解一下多型的概念。在物件導向語言中,多型本質就是執行時繫結,比如有乙個父類baseclass,它有2個子類subclass1,subclass2。baseclass有乙個方法func 兩個子類都重寫了這個方法。那麼我們可以定義乙個baseclass的引用obj,讓它指向乙個子類的物件,比如ba...
c 繼承 三 多型
多型 從字面意思不難理解為多種狀態 構成多型的兩個必要條件 1 虛函式的覆蓋 重寫 子類與父類一模一樣的函式,子類覆蓋了父類的虛函式 2 父類的指標或者引用指向物件 重寫 作用域不同,函式名相同 析構函式特殊 引數相同,返回值相同 虛函式 類的成員函式前加virtual關鍵字 必須是類的成員函式 在...
物件導向(三) 多型
多型是物件導向三大特性中比較難理解的乙個概念,但並不複雜!在這裡介紹下有關多型的概念以及相關用法。多型可以理解為對於同乙個方法,根據不同的物件產生不同的結果。光說肯定很抽象,下面用個例子去解釋多型。例子 package com.zzl.polymorphism public class polymo...