C++中虚函数的实现背后
上一篇 /
下一篇 2012-09-07 13:22:41
/ 个人分类:C++
51Testing软件测试网4p
sE9|._FE 摘要:虚函数是很多编程语言中一个特性,比如c#,java,当然在c++语言中也有。这三种语言都是面向对象的语言。我们都知道面向对象语言有三个最基本的特征就是:继承,多态,封装。在c++语言中,这种多态的特征就是通过虚函 ...51Testing软件测试网 oOI8\Qh/O
6pA'p`C.t&MY:T(i0
虚函数是很多编程语言中一个特性,比如c#,java,当然在c++语言中也有。这三种语言都是面向对象的语言。我们都知道面向对象语言有三个最基本的
特征就是:继承,多态,封装。在c++语言中,这种多态的特征就是通过虚函数(virtual)来实现的。这种实现方法在其它语言中(比如c#)中也是如
此。
{+I:to*f0L08_F/}^,wC"go0 我要说的就是虚函数到底是怎么实现的。还是以例子来说明。我引用了上一篇随笔中的代码。
(D
_V~I2Hd051Testing软件测试网)~b6w
JO class ClassA51Testing软件测试网^
`XXxT {51Testing软件测试网T7D`,d0R public: /w~UkR k0 void fun1();51Testing软件测试网\ qai$[!t@5` ?Vx;B void fun2();51Testing软件测试网-Nk7x],?M3^S!N virtual void fun3(); "z\
BC6T,O Y$Q0}; 9l@f9E,b"X]0void ClassA::fun1() E L7vk7qOYu0{ 8\qn8}F P7mm0 cout << "ClassA.fun1"<<endl; )dVQ$m7d0};51Testing软件测试网 E1IFX I:I void ClassA::fun2()51Testing软件测试网E]^l:kTxi:H {51Testing软件测试网3o#g9\PDu\d cout << "ClassA.fun2"<<endl; /bbgC7u8i+?8[0};51Testing软件测试网iYI8?Z!`;C"Z void ClassA::fun3() 0w:W
W%K#HQB0{ Ar(Xi.f"Tc0 cout << "ClassA.fun3"<<endl; D$eK2d:w_0}; L0Z4q(`0g0class ClassB : public ClassA51Testing软件测试网J+lY@![6e#@)^1G { %b,Q*\ @R3`@0public: Z#SO e I$_,c`0 void fun1();51Testing软件测试网z1FO'??2D.Ds%c void fun2();51Testing软件测试网X6xZ|xE4} virtual void fun3(); :?ors AO8Q0}; p8UXmA0void ClassB::fun3()51Testing软件测试网6S1h;fq;Z`E]U!I { *zJ6k:b!A6T0 cout << "ClassB.fun3"<<endl; )i[!I-eY2^0};51Testing软件测试网4|)nc9z)H ~ class ClassC : public ClassB51Testing软件测试网B(OP6F*^#T {
|