大型项目中函数重载的应用

今天主要是写继承类如何重载父类函数,并调用继承函数。下面从实例出发介绍。

#include <iostream>
using namespace std;

class A
{
public:
    A()
    {
        c = 0;
        d = 0;
        result = 0;
    }
    void getdata(int a, int b)
    {
        c = a + b;
        d = a*b;
        result = setdata(c, d);
    }
    int setdata(int a, int b)
    {
        return a + b;
    }
    int getResult()
    {
        return result;
    }
private:
    int c, d, result;
};

class B :public A
{

public: 
    int setdata(int a, int b)
    {
        return a*b;
    }

};

int main()
{
    A *a = new A();
    B *b = new B();
    int data1, data2;
    data1 = 3;
    data2 = 4;

    int Aresult, Bresult;
    Aresult = 0;
    Bresult = 0;
    a->getdata(data1, data2);
    Aresult = a->getResult();

    b->getdata(data1, data2);
    Bresult = b->getResult();

    delete a;
    a = NULL;
    delete b;
    b = NULL;
    cout << "Aresult:" << Aresult << endl;
    cout << "Bresult:" << Bresult << endl;

   return 1;
}

结果为 Aresult:19,Bresult:19。因为B这里调用的是A的int setdata(int a, int b)

而当将基类int setdata(int a, int b)改为virtual int setdata(int a, int b),那么结果就是Aresult:19,Bresult:84。因为B调用了自己的int setdata(int a, int b)函数

一般地,大型项目都是由多个人共同完成实现的,而新人容易不知所以然,因此今天特意举个实例供初学者学习。具体用到的原理不做解释,如类继承,virtual的使用,百度学习即可。

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值