c++ overload和override的区别

2025-04-06 07:27:49
推荐回答(1个)
回答1:

重载是相同函数名,但函数的参数不能完全相同。例如:
int f();
int f(int a);
这是重载。

重写是子类的函数实现覆盖了父类的函数实现,函数名和参数都要相同。例如:
class Base{
void f(){cout << "Base::f()" << endl;}

}
class Derive:public Base{
}
这种情况下通过子类对象调用f()函数就是使用的父类的函数
Derive d;
d.f();
会输出 Base::f()

class Base{
void f(){cout << "Base::f()" << endl;}

}
class Derive:public Base{
void f(){cout << "Deive::f()" << endl;}
}
这种情况下通过子类对象调用f()函数就是使用的自己的函数
Derive d;
d.f();
会输出 Derive::f()