函数重载
- 必须要在一个类中进行
- 子类无法重载父类的函数,父类同名函数将被名称覆盖
- 重载是在编译期间根据参数类型和个数决定函数调用
函数重写
- 必须是发生在子类和父类之间的
- 子类与父类必须有相同的函数原型
- 使用virtual使多态(如果不使用virtual是重定义)
代码测试
class father
{
public:
void func ()
{
cout<<"xixi"<<endl;
}
void func (int a,int b,int c)
{
cout<<"xixi"<<a<<endl;
}
};
class child :public father
{
public:
void func (int a)
{
cout<<"xixi+++"<<a<<endl;
}
void func (int a,int b)
{
cout<<"xixi+++"<<a<<b<<endl;
}
};
int main(int argc, char *argv[])
{
child a;
// a.func(); 会出错,因为不能重载父类的函数
a.father::func(1,2,3); //可以通过作用符来显示的使用父类的函数
return 0;
}