C++程序设计小作业②

题目

定义一个类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();

}


Guess you like

Origin blog.csdn.net/qq_46167911/article/details/105642774