讨论/《C++ 面试突击》 - 重载、重写、隐藏的区别/
《C++ 面试突击》 - 重载、重写、隐藏的区别
共 7 个回复

隐藏是可以通过以下这种语法调用的:
ex.Base::fun(1, 0.01);

15

理论上来说按返回值区分重载是可行的,只要命名修饰的时候加上返回值就好了。但是难点在于调用时的决策。

int foo() { cout << "foo return int"; }

double foo() { cout << "foo return double"; }

int main() {
    foo();
    return 0;
}

例如上面的情况,我完全可以不要返回值,调用目的只想要foo()函数内的输出语句。那么这个时候编译器应该选择那个函数执行呢?

1

最好是写上override,要不然如果有const, &&, &限制符还是会认为你是隐藏的

1

提出一个问题?
为什么重载不关心函数的返回值类型?

1

重写可以通过类似的方法调用基类中的虚函数吗

1

打卡

2

好像是可以的