标题:一个虚函数的问题
只看楼主
m1c2f4843
Rank: 1
等 级:新手上路
帖 子:27
专家分:4
注 册:2010-7-30
结帖率:85.71%
已结贴  问题点数:20 回复次数:2 
一个虚函数的问题
程序代码:
#include <iostream>

using namespace std;

class animal
{
    int a;
public:
    virtual void eat()
    {
        cout << "animal eat" << endl;
    }
    virtual void play()
    {
        cout << "animal play" << endl;
    }
};

class dog : public animal
{
    int b;
public:
    virtual void eat()
    {
        cout << "dog eat" << endl;
    }
    virtual void play()
    {
        cout << "dog play" << endl;
    }
    virtual void run()
    {
        cout << "dog run"<< endl;
    }
};


int main()
{
    animal a1;
    dog d1;


    return 0;
}


为什么在对象a1中只有一个animal类的vptr
而没有他自己的vptr,不是在dog类中定义了一个virtual void run();吗 不是应该有一个指向virtual void run();的虚表吗
用的是vc6.0
搜索更多相关主题的帖子: animal 虚函数 color 
2012-04-13 21:56
寒风中的细雨
Rank: 17Rank: 17Rank: 17Rank: 17Rank: 17
等 级:贵宾
威 望:66
帖 子:1710
专家分:8645
注 册:2009-9-15
得分:0 
虚函数   是看最顶层的基类的
2012-04-14 11:33
寒风中的细雨
Rank: 17Rank: 17Rank: 17Rank: 17Rank: 17
等 级:贵宾
威 望:66
帖 子:1710
专家分:8645
注 册:2009-9-15
得分:20 
发重了

当dog不继承别的类时  你可以试试看


子类中可以不加virtual 关键字


[ 本帖最后由 寒风中的细雨 于 2012-4-14 12:21 编辑 ]
2012-04-14 11:33



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-365733-1-1.html




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

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