标题:求解
只看楼主
zhangfuhua
Rank: 1
等 级:新手上路
帖 子:70
专家分:0
注 册:2006-7-1
 问题点数:0 回复次数:6 
求解
#include<iostream>

using namespace std;

class base
{public:
        void who(){cout<<"base class"<<endl;}
};

class derive1:public base
{public:
        void who(){cout<<"derive1 class"<<endl;}
};

class derive2:public base
{public:
        void who(){cout<<"derive2 class"<<endl;}
};     

      
int main()
{
    base obj1,*p;
    derive1 obj2;
    derive2 obj3;
    p=&obj1;
    p->who();
    p=&obj2;
    p->who();
    p=&obj3;
    p->who();
    obj2.who();
    obj3.who();


return 0;
}
搜索更多相关主题的帖子: base public class void 
2008-02-22 20:39
zhangfuhua
Rank: 1
等 级:新手上路
帖 子:70
专家分:0
注 册:2006-7-1
得分:0 
答案:
base class
base class
base class
derive1 class
derive2 class
为什么?
2008-02-22 20:40
sunkaidong
Rank: 4
来 自:南京师范大学
等 级:贵宾
威 望:12
帖 子:4496
专家分:141
注 册:2006-12-28
得分:0 
我已经在你得另一个问题里面帮你回答了
使用基类指针访问派生类,虽然派生类成员函数可以覆盖基类成员函数,但是要通过对象覆盖,指针是不可以的,要想实现覆盖,就必须用虚函数,实现动态联编.就可以实现多态了.

[[it] 本帖最后由 sunkaidong 于 2008-2-22 20:56 编辑 [/it]]
2008-02-22 20:51
sunkaidong
Rank: 4
来 自:南京师范大学
等 级:贵宾
威 望:12
帖 子:4496
专家分:141
注 册:2006-12-28
得分:0 
个人观点:
 基类对象访问基类中定义成员,派生类对象访问在派生类中定义的成员和从基类中继承的成员(如果重载了以派生类为准).如果涉及基类指针访问派生类只能访问从基类中继承的成员.一旦有虚函数,就会出现动态联编.用基类指针访问的是派生类中的同名虚函数(基类中也有)

[[it] 本帖最后由 sunkaidong 于 2008-2-22 21:15 编辑 [/it]]
收到的鲜花
  • zhangfuhua2008-02-23 09:47 送鲜花  1朵  
2008-02-22 21:12
zhangfuhua
Rank: 1
等 级:新手上路
帖 子:70
专家分:0
注 册:2006-7-1
得分:0 
[bc01] 谢谢!
2008-02-23 09:49
hero2007
Rank: 1
来 自:湖北武汉
等 级:新手上路
威 望:1
帖 子:130
专家分:0
注 册:2007-3-22
得分:0 
sunkaidong君回答的很好,LZ确实要再仔细看看多态性相关的章节。
2008-02-23 10:18
zhangfuhua
Rank: 1
等 级:新手上路
帖 子:70
专家分:0
注 册:2006-7-1
得分:0 
谢谢
基本的搞明白了
2008-03-04 21:24



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




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

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