首页 > 试题广场 >

定义一个类nauticalmile_kilometer,它包

[问答题]

定义一个类nauticalmile_kilometer,它包含两个数据成员kilometer(千米)和meter(米);还包含一个构造函数对数据成员进行初始化;成员函数print,用于输出数据成员kilometer和meter的值;类型转换函数operator double,实现把千米和米转换为海里(1海里=1.852千米)的功能。编写main函数,测试类nauticalmile_kilometer。

推荐
#include <iostream>
using namespace std;
const double n = 1.852;     //定义海里与千米和米的转换系数(1海里=1.852千米)
class nauticalmile_kilometer
{
 public:
nauticalmile_kilometer( int km,double m )
 {
 kilometer = km;  meter = m;
 }
void print()
 {
cout<<"kilometer="<<kilometer<<'\t'<<"meter="<<meter<<endl;
}
operator double();
private:
int kilometer;
double meter;
};
nauticalmile_kilometer::operator double()
{
  return ( meter / 1000 + double( kilometer )) / n;
}
int main()
{
nauticalmile_kilometer  obj( 100,50 );
  obj.print();
  cout << "nauticalmile=" << double( obj ) << endl;
}

发表于 2018-05-07 15:13:55 回复(0)
#include <iostream>
using namespace std;
class nauticalmile_kilometer
{
    public:
    nauticalmile_kilometer(double k=0,double m=0):kilometer(k),meter(m){}
    operator double();
    void print();

    private:
    double kilometer,meter;
};

nauticalmile_kilometer::operator double()     //类型转换函数
{
    return (meter/1000.0+kilometer)/1852.0;
}

void nauticalmile_kilometer::print()
{
    cout<<"kilometer:"<<kilometer<<endl;
    cout<<"meter:"<<meter<<endl;
}

int main()
{
    nauticalmile_kilometer km(3,657);
    km.print();
    cout<<"nauticalmile:"<<double(km)<<endl;      //验证类型转换函数
}

发表于 2020-05-20 21:13:09 回复(0)