首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > VC/MFC >

能在虚函数的基础上再加一点效能吗

2013-03-26 
能在虚函数的基础上再加一点功能吗?例如class a{virtual void save(int t){ a t }int a}class b : pub

能在虚函数的基础上再加一点功能吗?
例如

class a
{
  virtual void save(int t){ a = t; }
  int a
};

class b : public a
{
  save(int t){ b = t; }
  int b; 
};

我想先保存到a,在保存b.
能这样做吗?

[解决办法]
你可以做,但是必须在子类的save里显示调用父类的save
因为这里涉及到一个函数隐藏的概念
当你的子类中有函数和父类同名时
不管参数个数是否相同,类型是否相同
子类中都会将父类函数屏蔽掉
因此你创建了一个b类对象调用save是只能调用子类的save的
[解决办法]
void b::save(int t)
{
 a::save(t);
 b = t; 
}
[解决办法]
当然可以,方法如2楼
如果不可虑时机的话,也可以在初始化列表里做
[解决办法]
可以啊,定义类a 类b 的对象a1,b1. 分别调用a1.save(x) b1.save(x)
[解决办法]
虚函数的作用,就是让你在子类中多些功能。
[解决办法]
肯定是可以的,就是看起来觉得挺麻烦的,直接初始化之也可以
[解决办法]

探讨

void b::save(int t)
{
a::save(t);
b = t;
}

热点排行