1 重载
同一个作用域下,函数名称相同,参数个数、顺序、类型不同。
void print(){}
void Print(int a){}
void Print(double a){}
2 重写
子类重写父类中的虚函数,函数返回值、函数名、形参列表完全一致称为重写。
class Parent
{
// 父类中的虚函数
virtual void print()
{
}
};
class Son:public Parent
{
// 重写父类中的虚函数
virtual void print() // virtual 关键字可要可不要
{
}
};
3 重定义
子类重新定义父类中的同名成员函数(非虚函数),隐藏掉父类中所有的同名成员函数,如果想调用父类中的同名函数,需要加作用域。
class Parent
{
// 父类中的成员函数
void print()
{
}
void print(int a)
{
}
};
class Son:public Parent
{
// 重定义父类中的同名成员函数(非虚函数),隐藏掉父类中所有的同名成员函数,如果想调用父类中的同名函数,需要加作用域
void print()
{
}
};