能在虚函数的基础上再加一点功能吗?
例如
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)
[解决办法]
虚函数的作用,就是让你在子类中多些功能。
[解决办法]
肯定是可以的,就是看起来觉得挺麻烦的,直接初始化之也可以
[解决办法]