| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 893 人关注过本帖
标题:求解
只看楼主 加入收藏
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
快速回复:求解
数据加载中...
 
   



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

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