函数重载与重写

函数重写(Override):
函数重写是在子类中定义一个与父类中同名的方法,以覆盖父类中的方法。通过函数重写,子类可以扩展或修改父类中原有的行为。在C++中,如果子类重写了一个父类的方法,那么在调用该方法时,将调用子类中的方法,而不是父类中的方法。
例如:
class Animal {
public:
    virtual void makeSound() {
        cout << "Animal is making a sound." << endl;
    }
};
class Dog : public Animal {
public:
    void makeSound() override {
        cout << "Dog is barking." << endl;
    }
};
int main() {
    Animal* animal = new Dog();
    animal->makeSound(); // 输出 "Dog is barking."
    delete animal;
    return 0;
}
在上面的示例中,Animal类定义了一个虚函数makeSound(),Dog类继承了Animal类并重写了makeSound()方法。在main()函数中,我们创建了一个指向Dog对象的Animal指针,并调用了makeSound()方法。由于Dog类重写了makeSound()方法,因此实际调用的是Dog类中的makeSound()方法,而不是Animal类中的makeSound()方法。
函数重载(Overload):
函数重载是指在同一个类中定义多个同名方法,但它们的参数列表不同。通过函数重载,可以在同一个类中使用多个同名方法来处理不同的参数。在C++中,如果一个类中有多个同名方法,那么在调用该方法时,将根据参数列表的不同来选择要调用的方法
例如:
class Calculator {
public:
    int add(int a, int b) {
        return a + b;
    }
    double add(double a, double b) {
        return a + b;
    }
};
int main() {
    Calculator calculator;
    int result1 = calculator.add(2, 3); // 调用 int add(int a, int b) 方法,返回 5
    double result2 = calculator.add(2.5, 3.5); // 调用 double add(double a, double b) 方法,返回 6.0
    return 0;
}
全部评论

相关推荐

给我发了笔试链接,想着等晚上回去做,结果还没做流程就终止了
伟大的小黄鸭在学习:我猜就是笔试几乎没用,就是用来给用人部门拖时间复筛简历的,可能用人部门筛到你简历觉得不合适就提前挂了
投递小鹏汽车等公司10个岗位
点赞 评论 收藏
分享
真三hjdlxn:这么能吹还能找不到实习啊? 市分行写TOP投行,2个月的实习写半页。
点赞 评论 收藏
分享
Lorn的意义:1.你这根本就不会写简历呀,了解太少了 2.你这些项目经历感觉真的没啥亮点啊,描述的不行,重写书写一下让人看到核心,就继续海投 注意七八月份ofer还是比较多的,越往后机会越少,抓住时机,抓紧检查疏漏,加油查看图片
点赞 评论 收藏
分享
不愿透露姓名的神秘牛友
07-29 12:06
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务