C++中重写、重载、重定义

函数重载

  1. 必须在同一个类中进行
  2. 子类无法重载父类的函数
  3. 函数名字相同,参数不同,返回值可以不同
  4. 重载在编译期间根据参数类型和个数决定函数调用
    parent类中func()发生了重载
class Parent
{
public:
    Parent()
    {
        cout<<"Parent01:printf()..do"<

函数重写

  1. 发生在父类和子类之间
  2. 父类与子类中的函数必须有完全相同的原型,相同的参数,返回值也相同
  3. 重写函数的访问修饰符可以不同
  • 虚函数virtual重写,将发生多态,在运行期间根据具体对象的类型决定函数调用
  • 非虚函数重载,将发生重定义
    child类中的函数func是对类parent中函数func的重写,类parent是虚函数类型
class Parent
{
public:
    Parent()
    {
        cout<<"Parent01:printf()..do"<

你可能感兴趣的:(C++中重写、重载、重定义)