标签:c++ 不同 lock str block 类成员 round 实参 函数重载
继承体系下同名成员函数的三种关系
重载
C++中函数重载达到的效果:
调用函数名相同的函数,根据实参的类型和个数选择相应的实现函数体执行。
函数重载是一种静态多态,或者称之为静态联编、静态绑定、静态决议,其实都一样。
重写/覆盖
在子类中定义一个与父类中完全相同的虚函数:
C++中函数重写达到的效果:
在子类中重写了父类的虚函数,则子类对象调用该重写函数时从子类内部调用,而不是从父类继承,是一种动态多态。
在子类中重写了父类的虚函数,如果用一个父类指针或引用指向子类对象,那么该指针调用的是重写的虚函数,也即是子类的虚函数, 而如果一个父类指针指向父类对象,则调用父类的虚函数。
重定义/隐藏
指的是在不同作用域内,函数名相同,但不构成重写的则构成重定义。不仅仅是值类的成员函数,也可以是类的成员变量。
C++中重定义达到的效果:
如果再父类和子类中有相同名字的成员,子类中会将父类成员隐藏,此时无论在子类内部还是外部,通过子类成员会对象访问该成员,访问到的都是子类同名成员。
如果再子类内部或外部通过子类成员访问同名成员函数,则需要根据函数调用的规则来调用子类的同名成员函数,否则调用失败。
标签:c++ 不同 lock str block 类成员 round 实参 函数重载
原文地址:https://www.cnblogs.com/phillee/p/10883840.html