荔园在线

荔园之美,在春之萌芽,在夏之绽放,在秋之收获,在冬之沉淀

[回到开始] [上一篇][下一篇]


发信人: littlebao (爱拼才会赢), 信区: Visual
标  题: 看看是调用了那个函数????
发信站: 荔园晨风BBS站 (Sun Aug 24 11:06:00 2003), 站内信件

昨天看com的包容和聚合时一个函数调用的问题搞的我头晕脑胀的
原来一切都是虚函数搞的鬼。大家看看下面的
pB->BFun1() ;
pB->BFun2() ;
pB->BFun3()
分别调用的是那个函数??

#include "stdafx.h"
#include "iostream"
using namespace std ;

class CA
{
public :
        virtual void fun1() = 0 ;
        virtual void fun2() = 0 ;
        virtual void fun3() = 0 ;
};

class CB
{
public :
        virtual void BFun1() = 0 ;
        virtual void BFun2() = 0 ;
        virtual void BFun3() = 0 ;
};

class CC : public CA
{
public :
        virtual void fun1() {cout<<"fun1"<<endl ;}
        virtual void fun2() {cout<<"fun2"<<endl ;}
        virtual void fun3() {cout<<"fun3"<<endl ;}

};


int _tmain(int argc, _TCHAR* argv[])
{
        CB * pB = NULL ;
        CC Ctest ;
        pB = reinterpret_cast<CB *>(static_cast<CA*>(&Ctest)) ;
        pB->BFun1() ;
        pB->BFun2() ;
        pB->BFun3() ;
        return 0;
}

--
※ 来源:·荔园晨风BBS站 bbs.szu.edu.cn·[FROM: 61.144.235.40]


[回到开始] [上一篇][下一篇]

荔园在线首页 友情链接:深圳大学 深大招生 荔园晨风BBS S-Term软件 网络书店