重写,重载,重定义

  1. 重写  override

    定义:子类重写基类的虚函数

      特点:(1) 函数名相同 (2) 作用域不同 (3) 参数列表相同 (4) 基类函数必须有virtual关键字且不能有static (5) 返回值相同 (6)  重写函数的访问修饰符可以不同

      例子:基类:virtual void restrictionChanged(); 子类:void restrictionChanged()

  2. 重载 overload  

    定义:函数名相同,但是参数列表不同,注意main函数不能重载,每个程序的main函数只有一个

      特点:(1) 函数名相同 (2) 作用域相同 (3) 参数列表不同 (4) virtual关键字可有可无 (5) 返回值可以不同 (6) 访问修饰符可以不同

      例子:某类:void restrictionChanged(int); void restrictionChanged(double);

  3. 重定义 overwrite

    定义:子类重定义基类的函数 

      特点:(1) 函数名相同 (2) 作用域不同 (3) 参数列表可以不同 (4) virtual关键字可有可无 (5) 返回值可以不同 (6) 访问修饰符可以不同 

      例子:基类:void restrictionChanged(int); 子类:void restrictionChanged(double);

  参数列表不同:指的是个数或类型,但是不能靠返回类型来判断

原文地址:https://www.cnblogs.com/qianqiannian/p/6596495.html