BBS.ChinaUnix.net
首页 | 新闻 | Linux | FreeBSD | AIX | Windows | 博客 | 论坛 | 存储 | 网络 | 人才 | Wiki | 资料 | 读书 | 手册 | 下载 | 空间 | 搜索
  会员: 密码: 免费注册 | 忘记密码 | 会员登录 | 搜索 | 帮助 


奥运快报: 
奥运热点:
 

[C++] 如何将基类的一个public函数给hide了?
首页 » 论坛 » C/C++ »  
[打印] [订阅] [收藏] [本帖文本页] [推荐此主题给朋友,立即获积分]
DraculaW   帅哥
风云使者




UID:253320
注册:2005-4-12
最后登录: 2008-09-05
帖子:435
精华:1

可用积分:620 (稍有积蓄)
信誉积分:100
专家积分:5 (本版:5)
空间积分:0
推广积分:0

来自:陕西
状态:...离线...

[个人空间] [短信] [博客]


1楼 发表于 2008-7-3 15:04 

class A{
public:
    virtual void fun(){cout << "a" << endl; };
};

class B : public A{
    virtual void fun(){};
};

int main()
{
    A a;
    B b;
    A *pa = new B;
   
    a.fun();
    b.A::fun();
    pa->fun();
}

他的输出是
a a


令人很是郁闷
有谁有好的办法么
这个是个项目中的问题的抽象 我的方式是另写了一个B不从A继承 这两个类总的说来还是有很多类似的地方 但是概念上有些不同...
我知道更好的方法是将A B公共的函数抽象出来 可是大家也知道 项目中现有的框架改起来不是很现实... 就算是只有两个class



您对本贴的看法:鲜花[0] 臭蛋[0]

__________________________________

我要飞
空间积分可以换礼品了! | 有奖跟帖:服务器节能,奖50-100元图书 | 致电800-858-2903,了解DELL如何为你量身订制笔记本 | 送2G U盘
版主 converse   帅哥
广告杀手-法王
Stupid is as stupid does.




UID:117516
注册:2003-12-7
最后登录: 2008-09-06
帖子:12169
精华:13

可用积分:4977 (小富即安)
信誉积分:145
专家积分:130 (本版:10)
空间积分:0
推广积分:0

来自:芒果花开的地方
状态:...离线...

[个人空间] [短信] [博客]


2楼 发表于 2008-7-3 15:07 
没看明白你想干嘛...



您对本贴的看法:鲜花[0] 臭蛋[0]

__________________________________

唯坚持,得成功.
C++名人Alexandrescu说,"十几岁的少年天才到处都有,三十多岁的优秀设计师凤毛麟角".我做不了十几岁的少年天才,但愿到三十多岁时能成为一个优秀工程师.

卖书: http://bbs.chinaunix.net/thread-1053812-1-1.html
空间积分可以换礼品了! | 有奖跟帖:服务器节能,奖50-100元图书 | 致电800-858-2903,了解DELL如何为你量身订制笔记本 | 送2G U盘
高峰   帅哥
风云使者




UID:278786
注册:2005-6-9
最后登录: 2008-07-11
帖子:406
精华:0

可用积分:317 (白手起家)
信誉积分:105
专家积分:0 (本版:0)
空间积分:0
推广积分:0

状态:...离线...

[个人空间] [短信] [博客]


3楼 发表于 2008-7-3 15:08 
我也是没有明白



您对本贴的看法:鲜花[0] 臭蛋[0]
空间积分可以换礼品了! | 有奖跟帖:服务器节能,奖50-100元图书 | 致电800-858-2903,了解DELL如何为你量身订制笔记本 | 送2G U盘
DraculaW   帅哥
风云使者




UID:253320
注册:2005-4-12
最后登录: 2008-09-05
帖子:435
精华:1

可用积分:620 (稍有积蓄)
信誉积分:100
专家积分:5 (本版:5)
空间积分:0
推广积分:0

来自:陕西
状态:...离线...

[个人空间] [短信] [博客]


4楼 发表于 2008-7-3 15:09 
简单的来说就是
A类有一个公有的方法 fun();
然后 B类最好能从A继承, 但是B类不能有fun方法  至少是不能被调用



您对本贴的看法:鲜花[0] 臭蛋[0]

__________________________________

我要飞
空间积分可以换礼品了! | 有奖跟帖:服务器节能,奖50-100元图书 | 致电800-858-2903,了解DELL如何为你量身订制笔记本 | 送2G U盘
DraculaW   帅哥
风云使者




UID:253320
注册:2005-4-12
最后登录: 2008-09-05
帖子:435
精华:1

可用积分:620 (稍有积蓄)
信誉积分:100
专家积分:5 (本版:5)
空间积分:0
推广积分:0

来自:陕西
状态:...离线...

[个人空间] [短信] [博客]


5楼 发表于 2008-7-3 15:10 
也就是
pa = new B;
pa->fun(), 这个调用无法使用



您对本贴的看法:鲜花[0] 臭蛋[0]

__________________________________

我要飞
空间积分可以换礼品了! | 有奖跟帖:服务器节能,奖50-100元图书 | 致电800-858-2903,了解DELL如何为你量身订制笔记本 | 送2G U盘
高峰   帅哥
风云使者




UID:278786
注册:2005-6-9
最后登录: 2008-07-11
帖子:406
精华:0

可用积分:317 (白手起家)
信誉积分:105
专家积分:0 (本版:0)
空间积分:0
推广积分:0

状态:...离线...

[个人空间] [短信] [博客]


6楼 发表于 2008-7-3 15:11 
不行,没有办法。



您对本贴的看法:鲜花[0] 臭蛋[0]
空间积分可以换礼品了! | 有奖跟帖:服务器节能,奖50-100元图书 | 致电800-858-2903,了解DELL如何为你量身订制笔记本 | 送2G U盘
scutan   帅哥 (冬日夜雨)
精灵使
Linux newbie


CU奥运火炬传递手2008
UID:551201
注册:2007-4-13
最后登录: 2008-09-06
帖子:4292
精华:10

可用积分:3429 (小富即安)
信誉积分:345
专家积分:739 (本版:322)
空间积分:810
推广积分:165

来自:成都
状态:...离线...

[个人空间] [短信] [博客]


7楼 发表于 2008-7-3 15:31 
A,B都继承于另外一个C, 在A中加一个fun, B中不加.



您对本贴的看法:鲜花[0] 臭蛋[0]

__________________________________

全力以赴每一秒!
勿在浮砂筑高台!
空间积分可以换礼品了! | 有奖跟帖:服务器节能,奖50-100元图书 | 致电800-858-2903,了解DELL如何为你量身订制笔记本 | 送2G U盘
版主 net_robber   帅哥 (迷茫的羔羊)
版主-精灵使
堕落的鬼魂




UID:159572
注册:2004-5-20
最后登录: 2008-09-06
帖子:3418
精华:4

可用积分:5046 (富足长乐)
信誉积分:99
专家积分:10 (本版:5)
空间积分:0
推广积分:0

状态:...离线...

[个人空间] [短信] [博客]


8楼 发表于 2008-7-3 15:41 
重载一下,就给覆盖了



您对本贴的看法:鲜花[0] 臭蛋[0]

__________________________________

支持山寨,效果还算满意
空间积分可以换礼品了! | 有奖跟帖:服务器节能,奖50-100元图书 | 致电800-858-2903,了解DELL如何为你量身订制笔记本 | 送2G U盘
DraculaW   帅哥
风云使者




UID:253320
注册:2005-4-12
最后登录: 2008-09-05
帖子:435
精华:1

可用积分:620 (稍有积蓄)
信誉积分:100
专家积分:5 (本版:5)
空间积分:0
推广积分:0

来自:陕西
状态:...离线...

[个人空间] [短信] [博客]


9楼 发表于 2008-7-3 16:13 


QUOTE:
原帖由 scutan 于 2008-7-3 15:31 发表
A,B都继承于另外一个C, 在A中加一个fun, B中不加.

是 这个方法很好 不过对现有的代码的影响呢
稳定是第一位的..... 在这里



您对本贴的看法:鲜花[0] 臭蛋[0]

__________________________________

我要飞
空间积分可以换礼品了! | 有奖跟帖:服务器节能,奖50-100元图书 | 致电800-858-2903,了解DELL如何为你量身订制笔记本 | 送2G U盘
DraculaW   帅哥
风云使者




UID:253320
注册:2005-4-12
最后登录: 2008-09-05
帖子:435
精华:1

可用积分:620 (稍有积蓄)
信誉积分:100
专家积分:5 (本版:5)
空间积分:0
推广积分:0

来自:陕西
状态:...离线...

[个人空间] [短信] [博客]


10楼 发表于 2008-7-3 16:14 


QUOTE:
原帖由 net_robber 于 2008-7-3 15:41 发表
重载一下,就给覆盖了

@_@  我的那种实现 是重载么



您对本贴的看法:鲜花[0] 臭蛋[0]

__________________________________

我要飞
空间积分可以换礼品了! | 有奖跟帖:服务器节能,奖50-100元图书 | 致电800-858-2903,了解DELL如何为你量身订制笔记本 | 送2G U盘

首页 » 论坛 » C/C++ »


 


Copyright © 2001-2008 ChinaUnix.net All Rights Reserved     联系我们:

感谢所有关心和支持过ChinaUnix的朋友们    转载本站内容请注明原作者名及出处

京ICP证041476号


清除 Cookies - ChinaUnix - Archiver - WAP - TOP

Processed in 0.059087 second(s), 4 queries , Gzip enabled