C++中的引用在结构体中的应用

源程序:

#include <iostream>
#include <string>
struct free_throws
{
    std::string name;
    int made;
    int attempts;
    float percent;
};
void display(const free_throws &ft);
void set_pc(free_throws &ft);
free_throws & accumulate(free_throws
 &target,const free_throws &source);
//void initialStruct();
int main()
{
   free_throws one = {"no.1",13,14,0};
   free_throws two = {"no.2",13,14,0};
   free_throws three = {"no.3",13,14,0};
   free_throws four = {"no.4",13,14,0};
   free_throws five = {"no.5",13,14,0};
   free_throws team = {"team",13,14,0};
   free_throws dup;
   set_pc(one);
   display(one);
   accumulate(team,one);
   display(team);

   display(accumulate(team,two));
   accumulate(accumulate(team,three),four);
   dup = accumulate(team,five);

   std::cout <<"Display team : \n";
   display(team);

   std::cout << "Displaying dup 
   after assignment \n";
   display(dup);
   set_pc(four);

   accumulate(dup,five) = four;
   std::cout << "Displaying dup 
   after ill-advised assignment \n";
   display(dup);
   return 0;
}
void display(const free_throws &ft)
{
    using std::cout;
    cout <<  "Name : " << ft.name;
    cout << "Made : " << ft.made;
    cout << "Attempts : " << ft.attempts;
    cout << "Percent : " << ft.percent;
}
void set_pc(free_throws &ft)
{
    if(ft.attempts != 0)
    {
        ft.percent = 100.0f * 
        float(ft.made) / (ft.attempts);
    }
    else
        ft.percent = 0;
}
free_throws & accumulate(free_throws
 &target, const free_throws &source)
{
    target.attempts += source.attempts;
    target.made += source.made;
    set_pc(target);
    return target;
}

在这里插入图片描述

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值