题目
定义一个类nauticalmile_kilometer,它包含两个数据成员kilometer(千米)和meter(米);还包含一个构造函数对数据成员进行初始化;成员函数print,用于输出数据成员kilometer和meter的值;类型转换函数operator double,实现把千米和米转换为海里(1海里=1.852千米)的功能。编写main函数,测试类nauticalmile_kilometer。
增加功能:增加实现两个类相加的重载运算符函数;
#include <iostream>
using namespace std;
class nauticalmile_kilometer
{
public:
double kilometer, meter;
nauticalmile_kilometer(double,double);
void print()
{
cout << kilometer << " km " << meter << " m" << endl;
}
operator double();
};
nauticalmile_kilometer::nauticalmile_kilometer(double km,double m):kilometer(km),meter(m){
}
nauticalmile_kilometer::operator double()
{
return ((meter / 1000 + kilometer) / 1.852);
}
//重载+
nauticalmile_kilometer operator+(const nauticalmile_kilometer& b, const nauticalmile_kilometer& c)
{
return nauticalmile_kilometer(b.kilometer + c.kilometer, b.meter + c.meter);
}
int main()
{
double mile = 0;
nauticalmile_kilometer a(1000, 1), x(2, 2), n(0, 0);
cout << "输出对象 a:";
a.print();
mile = a;
cout << "转换为: " << mile << " 海里"<<endl;
n = a + x;
cout << "a+x=";
n.print();
}