4.1 实现一个三维坐标的Point类。包含一个构造函数,一个拷贝构造函数,一个将点变为相对于原点的对称点的negate函数,一个返回该点到原点(0,0,0)距离的函数norm和一个输出点坐标的函数print。
测试程序:
int main()
{ Point p(10,-5,4);
cout << "p = ";
p.print();
cout << ", p.norm() = " << p.norm() << endl;
p.negate();
cout << "p = ";
p.print();
cout << ", p.norm() = " << p.norm() << endl;
return 0;
}
程序运行结果为:
p = (10,-5,4), p.norm() = 11.8743
p = (-10,5,-4), p.norm() = 11.8743
4.2 实现一个时间类Time。将小时,分钟和秒存储为int型。包含一个构造函数,访问用的函数,一个推进当前时间的函数adv (),一个重新设置当前时间的函数reset()和输出结果函数print().
测试程序:
int main()
{ Time t(12,52,01);
t.print();
cout << endl;
t.adv();
t.print();
cout << endl;
t.adv(3,5,2);
t.print();
cout << endl;
return 0;
}
程序运行结果为:
12:52:1
12:52:2
15:57:4
4.3 实现一个zrf_Ratio类,这个类的每个对象将表示一个分数。在该类中,两个数据成员分别用于存储分数的分子和分母。函数成员中包含一个设置分子和分母的函数assign(),转换成double 类型数值的函数convert(),分子和分母交换函数invert()和一个输出分数的函数print()。
测试程序:
int main()
{ zrf_Ratio z;
z.assign(22,7);
cout << "z = ";
z.print();
cout << " = " << z.convert() << endl;
z.invert();
cout << "1/z = ";
z.print();
cout << endl;
return 0;
}
程序运行结果为:
z = 22/7 = 3.14286
1/z = 7/22