C++PrimerPlus(第6版)中文版:Chapter8.2.4_Example8.6strc_ref.cpp
引用非常适合于结构和类,下面的例子就演示了这一点。
// Chapter8.2.4_Example8.6strc_ref.cpp.cpp : 此文件包含 "main" 函数。程序执行将在此处开始并结束。
// Chapter8.2.4_Example8.6strc_ref.cpp.cpp :本例子演示将引用应用于结构
#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);
int main()
{
// std::cout << "Hello World!\n";
//部分初始化-其他的成员初始化为0
free_throws one= {"Ifelsa Branch",13,14};
free_throws two= { "Andor Knott",10,16 };
free_throws three= { "Minnie Max",7,9 };
free_throws four= { "Whily Looper",5,9 };
free_throws five= { "Long Long",6,14 };
free_throws team= { "Throwgoods",0,0 };
//未做初始化
free_throws dup;
set_pc(one);
display(one);
accumulate(team,one);
display(team);
//使用返回值作为参数
display(accumulate(team, two));
accumulate(accumulate(team,three),four);
display(team);
//使用返回值赋值
dup = accumulate(team, five);
std::cout << "Displaying 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 << '\n';
cout << "Made:" << ft.made << '\n';
cout << "Attempts:" << ft.attempts << '\n';
cout << "Percent:" << ft.percent << '\n';
}
void set_pc(free_throws& ft)//该函数的功能是计算已经进球和射门次数的比值,就是进球率了,set_pc 代表设置百分比
{
if (ft.attempts != 0)
ft.percent = 100.0f * float(ft.made) / float(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;
}
运行结果:
Name:Ifelsa Branch
Made:13
Attempts:14
Percent:92.8571
Name:Throwgoods
Made:13
Attempts:14
Percent:92.8571
Name:Throwgoods
Made:23
Attempts:30
Percent:76.6667
Name:Throwgoods
Made:35
Attempts:48
Percent:72.9167
Displaying team:
Name:Throwgoods
Made:41
Attempts:62
Percent:66.129
Displaying dup after assignment:
Name:Throwgoods
Made:41
Attempts:62
Percent:66.129
Displaying dup after ill-advised assignment:
Name:Whily Looper
Made:5
Attempts:9
Percent:55.5556
C++PrimerPlus(第6版)中文版:Chapter8.2.4_Example8.6strc_ref.cpp相关推荐
- C++PrimerPlus(第6版)中文版:Chapter16.4.6关联容器_setops.cpp
本小节主要讲set的使用方法. 关联容器将值和键关联在一起,并使用键来查找值. 关联容器的优点在于:它提供了对元素的快速访问.插入元素的时候,不需要指定插入位置,因为关联容器是排过序的,它知道新元素来 ...
- C++PrimerPlus(第6版)中文版:Chapter16.1string类_16.3hangman.cpp
这是一个历史悠久的小游戏,早在维多利亚时代就已流行起来,规则简单且有趣,在7步之内猜出单词,否则小人将会"上吊". Hangman直译为"上吊的人",是一个猜单 ...
- WCF服务编程(4):《WCF服务编程》第3版中文版翻译结束,即将出版
原文地址: <WCF服务编程>第4版本翻译完毕!2016年底应该出版 [置顶]↑ WCF服务编程(4):<WCF服务编程>第3版中文版翻译结束,即将出版 ↑ 作为世界范围内最经 ...
- python cookbook pdf下载-Python Cookbook 第3版 中文版.pdf
作 者 :(美)比斯利,(美)琼斯著 出版发行 : 北京:人民邮电出版社 , 2015.05 ISBN号 :978-7-115-37959-7 页 数 : 684 原书定价 : 108.00 开本 : ...
- C++Primer Plus第6版C Primer Plus第6版 中文版免费分享啦
最近在学习C++,用的资料是师兄分享的经典书籍<C++Primer Plus第6版中文版>的PDF,自带书签,使用很方便.但师兄说这个是他在网上花了积分才下载下来的,这让我很是吃惊,因为作 ...
- python学习手册-Python学习手册(第4版) 中文版.pdf
您所在位置:网站首页 > 海量文档  > 计算机 > Python Python学习手册(第4版) 中文版.pdf11 ...
- C Primer Plus(第5版)中文版
1. 在声明一个简单变量和数组时使用关键字const很简单.指针则要复杂一些,因为不得不把让指针本身成为const与让指针指向的值成为const区分开来.下面的声明表明pf指向的值必须是不变的: 但p ...
- UNIX网络编程.卷1,套接字联网API(第3版)(中文版)(Stevens经典著作,两位顶级网络编程专家应邀执笔修订)...
UNIX网络编程.卷1,套接字联网API(第3版)(中文版)(Stevens经典著作,两位顶级网络编程专家应邀执笔修订) 基本信息 原书名: Unix Network Programming, Vol ...
- C Primer Plus第六版(中文版)编程练习答案(完美修订版)汇总
//本文是博主编写的C Primer Plus第六版(中文版)编程练习答案的所有链接; //使用超链接汇总于此,若是有用请点赞收藏并分享给他人; C Primer Plus 第六版(中文版)第二章(完 ...
最新文章
- 汇编语言程序设计 实验九
- TCP/IP之传输层(一)
- register_globals(全局变量注册开关)
- 天哪,flash cs4可以使动态文本旋转了
- Flask源码解析:从第一个版本开始阅读Flask源码
- 画面测试时,图片显示时,0件与N件的意义!
- javascript 常用代码技巧大收集
- (3)fastjson带有转义字符的数据格式处理
- 密度泛函 matlab,dft计算(密度泛函理论dft计算)
- 第十五届全国大学生智能车山东赛区最终奖项
- 谷歌成功利用一台 54 量子比特的量子计算机
- python语义分析_Python自然语言分析
- 菜鸟的数学建模之路(三):线性与非线性拟合
- Ajax学习一 创建Ajax对象(高洛峰)
- java集合面试锦集
- 计算机状态oxcoooooe9,电脑蓝屏后开机显示状态Oxcoooooe9
- 必知的Python 五个精彩彩蛋
- 信安学习-day16
- Win2003优化方法
- C/C++笔试题(13)
热门文章
- ubuntu软件源的更新方法
- 我们常说的swap函数到底该怎么使用?
- 苹果计算机怎么返回上一步操作,iphone12怎么关闭程序,iphone12怎么返回上一步的教程...
- web网页端禁止开发者模式
- 小程序项目:微信小程序奶茶店在线点单系统ssm框架
- Charles SSL黑白名单
- linux安装mysql8
- python pywin32教程_python pywin32学习笔记
- 清华计算机在线课程,清华大学计算机专业课程表.docx
- [算法讲解] KMP EXKMP : next与extend的羁绊