永发信息网

关于C++的同名覆盖原则的问题

答案:2  悬赏:60  手机版
解决时间 2021-01-27 11:50
  • 提问者网友:十年饮冰
  • 2021-01-26 23:25
关于C++的同名覆盖原则的问题
最佳答案
  • 五星知识达人网友:轻熟杀无赦
  • 2021-01-26 23:39
同名,会隐藏基类的函数的。
继承的重载原则是,要么不重载(改写),
要么完全重载(改写),不允许,只重载一部分。
不过可以用 using 指令等方法,明确说明,派生类继承基类的同名同参函数
然后,改写或者添加不同参数不同签名的其它同名函数
另外注意,同名的友元函数和成员函数(主要指的是运算符重载),不需要都重载,只需要友元或者成员

注意非虚函数和虚函数的不同含义。公有继承和私有继承的不同含义。
全部回答
  • 1楼网友:英雄的欲望
  • 2021-01-26 23:59
如果基类的同名函数不是虚函数,在派生类中一律被覆盖。
你的代码是不能编译通过的,因为B类定义的函数fun1覆盖了基类的同名函数fun1,所以派生类对象是无法调用基类的fun1( long )的。
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯