例8.2 利用Time类,定义多个对象,分别输入和输出对象中的时间:
#include <iostream>
using namespace std;
class Time
{
public:
int hour;
int minute;
int sec;
};
int main()
{
void set_time(Time&);
void show_time(Time&);
Time t1;
set_time(t1);
show_time(t1);
Time t2;
set_time(t2);
show_time(t2);
return 0;
}
void set_time(Time&t)//形参t是引用变量
{
cin >> t.hour;
cin >> t.minute;
cin >> t.sec;
}
void show_time(Time&t)//形参t是引用变量
{
cout << t.hour << ":" << t.minute << ":" << t.sec << ":" << endl;
}
执行结果如图:
例8.2c,数据成员的值可以不由键盘输入,而在调用函数时由实参给出,并在函数中使用默认参数:
#include <iostream>
using namespace std;
class Time
{
public:
int hour;
int minute;
int sec;
};
int main()
{
void set_time(Time&,int hour=0,int minute=0,int sec=0);
//函数声明,并且指认了默认参数
void show_time(Time&);
Time t1;
set_time(t1,12,23,34);//通过实参传值
show_time(t1);
Time t2;
set_time(t2);//使用默认的值
show_time(t2);
return 0;
}
void set_time(Time&t,int hour,int minute,int sec)
{
t.hour=hour;
t.minute=minute;
t.sec=sec;
}
void show_time(Time&t)
{
cout << t.hour << ":" << t.minute << ":" << t.sec << ":" << endl;
}
执行结果如图:
例8.3 上例中的例子也可以使用:含成员函数的类来处理
#include <iostream>
using namespace std;
class Time
{
public:
void set_time();//公用成员函数
void show_time();//公用成员函数
private:
int hour;
int minute;
int sec;
};
int main()
{
Time t1;
t1.set_time();
t1.show_time();
Time t2;
t2.set_time();
t2.show_time();
return 0;
}
void Time::set_time()//在类外定义show_time()函数
{
cin >> hour;
cin >> minute;
cin >> sec;
}
void Time::show_time()//在类外定义show_time()函数
{
cout <<hour << ":" << minute << ":" << sec << ":" << endl;
}
执行结果和例8.2是一样的。
例8.4 找出一个整型数组中元素的最大值:
#include <iostream>
using namespace std;
class Array_max
{
public:
void set_value();
void max_value();//公用成员函数
void show_value();//公用成员函数
private:
int array[10];
int max;
};
void Array_max::set_value()
{
int i;
for (i = 0; i < 10; i++)
cin >> array[i];
}
void Array_max::max_value()
{
int i;
max = array[0];
for (i = 1; i < 10; i++)
if (array[i]>max)max = array[i];
}
void Array_max::show_value()
{
cout << "max=" << max;
}
int main()
{
Array_max arrmax;//定义类对象arrmax
arrmax.set_value();//调用arrmax的set_value函数,向数组元素输入数值
arrmax.max_value();
arrmax.show_value();
return 0;
}
执行结果如图: