函数:按引用传递函数参数进行操作

来源:互联网 发布:网络教育本科是全日制 编辑:程序博客网 时间:2024/06/01 16:17
#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(void){using std::cout;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);cout << "Displaying team:\n";display(team);cout << "Displaying dup after assignment:\n";display(dup);set_pc(four);accumulate(dup, five) = four;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 << '\t';cout << "Attempts: " << ft.attempts << '\t';cout << "Percent: " << ft.percent << '\n';}void set_pc(free_throws & ft){if(ft.attempts != 0)ft.percent =100.0f * float(ft.made)/float(ft.attempts);elseft.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;}

原创粉丝点击