| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 2327 人关注过本帖
标题:基类指针转换成子类指针后
取消只看楼主 加入收藏
gz81
Rank: 5Rank: 5
等 级:职业侠客
帖 子:137
专家分:369
注 册:2008-5-1
结帖率:100%
收藏
已结贴  问题点数:20 回复次数:0 
基类指针转换成子类指针后
#include <iostream>

using namespace std;

class A {
public:
    virtual void fun0() {
        cout << "A::fun0 (virtual)" << endl;
    }
        void fun1() {
        cout << "A::fun1" << endl;
    }
        void fun2() {
        cout << "A::fun2" << endl;
    }

};
class B : public A {
public:

    void fun0() {
        cout << "B::fun0 (virtual)" << endl;
    }
    void fun1() {
        cout << "B::fun1" << endl;  
    }
        void fun3() {
        cout << "B::fun3" << endl;
    }

};

int main() {
    A *pa=new A;
    B *pb=(B*)pa;

    pb->fun0();
    pb->fun1();
    pb->fun2();
    pb->fun3();
    
    return 0;
}

以下是打印结果,哪位朋友可详细解释一下是为什么?主要是第一个不明白为什么输出的不是B::fun0 (virtual)
A::fun0 (virtual)  
B::fun1
A::fun2
B::fun3

[[it] 本帖最后由 gz81 于 2009-7-30 07:33 编辑 [/it]]
搜索更多相关主题的帖子: 子类 指针 基类 
2009-07-30 07:27
快速回复:基类指针转换成子类指针后
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.015207 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved