void set_time (Time&);
这一句是声明一个函数,也就是函数原型,告诉编译器,在你的代码里面,会有这样一个函数。
void set_time (Time&t)
{
cin >> t.hour;
cin >> t.minute;
cin >> t.sec;
}
这一段代码是函数的定义,具体实现了你刚才声明的函数。
Time & 和 Time & t是函数形参。因为在函数声明中,只是需要说明接受什么类型的参数,所以不用指名参数(形参)名,只用告诉编译器,这个函数接受一个Time 类型的引用(后面具体说明)。而在函数实现中,因为要用到这个变量,所以要给这个形参起一个名字,也就是t。
&在c++里有很多意思,在这里是“引用”的意思。你可以把引用看成一种指针,但是不要使用解引用符(*)就可以使用这个值。
在代码中的体现就是可以直接使用t.**(成员)。
传值和传引用是c++里面两种常见的函数调用方式。传值就是传一个副本给函数,对这个副本的操作不影响原来的值。而对引用进行操作,也改变原来的值。