【发布时间】:2022-01-02 09:18:35
【问题描述】:
据我所知,重写是指您有 2 个函数具有相同的名称和函数返回类型(void、int、float.. 等)以及相同的参数编号和类型。
重载是当您有 2 个函数名称相同但参数编号/类型或函数返回类型应该不同时。
但是今天我在上课的时候,看到了这张幻灯片:
这不应该超载吗?不压倒一切?因为这里的返回类型发生了变化(来自void
to float) 和 fa1() 函数在基类中没有参数,但在派生类中它有浮点参数。
如果这是压倒一切的,为什么?
【问题讨论】:
-
ia1不会覆盖,它只是将成员隐藏在基类中(这是狡猾的,永远不应该在实际代码中完成)。你也是对的,函数是重载的,而不是被覆盖的。 -
fa1不是virtual。祝你好运。当幻灯片稍后提出隐藏时,幻灯片又回到了这个问题,但总的来说我讨厌这张幻灯片。太误导人了。
标签: c++ oop inheritance overriding overloading