网上看到了两个版本:
1.父类和子类的函数名字相同,那就是隐藏
2.父类和子类的函数名字相同,参数相同的,如果是虚函数,那么就是覆盖,否则就是隐藏;参数列表不同的,都是隐藏
求教那种是正确,个人偏向第二种
网上看到了两个版本:
1.父类和子类的函数名字相同,那就是隐藏
2.父类和子类的函数名字相同,参数相同的,如果是虚函数,那么就是覆盖,否则就是隐藏;参数列表不同的,都是隐藏
求教那种是正确,个人偏向第二种
父类和子类的函数名字相同,参数相同的,如果是虚函数,那么就是覆盖,否则就是隐藏
这个说法是正确的。
所以覆盖,就是
Base *b = new Derived();
b->func(); 如果调用的是 derived的func就是覆盖了,如果是base的func,就是隐藏。