函数重载
- 必须要在一个类中进行
- 子类无法重载父类的函数,父类同名函数将被名称覆盖
- 重载是在编译期间根据参数类型和个数决定函数调用
函数重写
- 必须是发生在子类和父类之间的
- 子类与父类必须有相同的函数原型
- 使用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;
}
本文详细解析了函数重载与重写的概念,强调了重载发生在同一类内,通过参数类型和数量区别调用;而重写则出现在继承关系中,子类可以覆盖父类的方法实现多态。通过具体代码示例展示了两者在C++中的应用。
1303

被折叠的 条评论
为什么被折叠?



