请教一下,父类虚函数如果有重载,子类必须全部重写吗?
class Parent
{
public:
virtual void Method(void){}
virtual void Method(int i){}
};
class Child : public Parent
{
public:
virtual void Method(int i){}
};
int main(void)
{
Child *child = new Child();
child->Method(); //这里会报参数过少的错误
((Parent *)child)->Method(); //这样就没问题
return 0;
}代码如上,如果Parent只有一个Method方法,Child即便不重写也不会出错
但一旦重写了那个带参数的,子类对象就找不到另一个没参数的了
请问c++是有这样的规定吗?
...全文
相关推荐
C++中重载与重写函数区别及虚函数
### C++中重载与重写函数的区别及虚函数详解#### 一、虚函数概述**1.1 虚函数定义与作用**在C++中,虚函数是一种特殊的成员函数,它允许子类覆盖父类的行为。
Java方法重载和重写原理区别解析
如果子类将父类的方法重写了,调用的时候肯定是调用被重写过的子类的方法,但是如果要还要继续调用父类的方法我们该怎么做呢?此时通过 super 关键字可以实现这个功能。
java 重载,重写以及继承,多态的区别
重载是指同一个类中的多个同名方法,重写是指子类对父类方法的重新实现,继承是指子类继承父类的成员变量和方法,而多态是指父类可以调用子类的方法。
JAVA中的方法重写与方法重载区别
方法重写和方法重载是 JAVA 中两个重要的概念,它们都是多态性的体现。方法重写是指子类对父类方法的重写,而方法重载是指类中多个方法的重载。
重写和重载的区别
**不同类间**:重写发生在继承关系中,即子类重写父类的方法。2. **方法签名完全相同**:子类重写的方法与父类中对应的方法必须具有相同的返回类型、方法名和参数列表。3.


