使用结构编程时,最直接的方式是将结构作为参数传递,并在需要的时候将结构作为返回值使用。但是这样做有个缺点,如果结构比较大,就比较费内存,降低了系统的允许速度。因此许多C程序员倾向于传递结构的地址,然后使用指针来访问其中的内容。C++提高了第三种选择:按引用传递结构。
本博文演示了传递和使用结构,其他两种以后讲。
本例子声明了一个结构体travel_time,一个函数用于求两个结构体的和,一个函数用于显示结构体的各个部分。
// Chapter7.6_Example7.11travel.cpp : 此文件包含 "main" 函数。程序执行将在此处开始并结束。
//
#include <iostream>
struct travel_time
{
int hours;
int mins;
};
const int Mins_per_hr = 60;
travel_time sum(travel_time t1,travel_time t2);
void show_time(travel_time t);
int main()
{
// std::cout << "Hello World!\n";
using namespace std;
travel_time day1 = {5,45};
travel_time day2 = { 4,55 };
travel_time trip = sum(day1,day2);
cout << "Two days total:";
show_time(trip);
travel_time day3 = { 4,32 };
cout << "Three days total:";
show_time(sum(trip,day3));
return 0;
}
travel_time sum(travel_time t1, travel_time t2)
{
travel_time total;
total.hours = t1.hours + t2.hours+ (t1.mins + t2.mins) /Mins_per_hr;
total.mins = (t1.mins + t2.mins) % Mins_per_hr;
return total;
}
void show_time(travel_time t)
{
using namespace std;
cout << t.hours << "hours," << t.mins << "minutes\n";
}
结果如下:
Two days total:10hours,40minutes
Three days total:15hours,12minutes

被折叠的 条评论
为什么被折叠?



