函数重载:(注意,子类无法重载父类的函数)(类中,相同函数名,不同参数)
必须在同一个类中进行。
子类无法重载父类的函数,父类同名函数将被名称覆盖。
重载时在编译期间根据参数类型和个数决定函数调用。
函数重写(类间的虚函数,相同函数名及参数,也称为覆盖,):
必须发生于父类与子类之间
并且父类与子类中的函数必须有完全相同的原型
使用virtual声明之后能够产生多态(如果不加virtual ,则是重定义)
函数重定义(类间,相同函数名,参数可相同,也可不同,非虚函数,也称为隐藏)
如果在父类中定义一个函数(没有声明为虚函数),(原理上子类会继承父类的函数),如果子类中有相同函数名(参数个数或类型与父类不同),本来是相当于重载的,但因为子类无法重载父类的函数,所以此时会出现名称覆盖。即打算用子类对象调用父类的该函数时会出现编译器报错。