13-8.cpp

来自「为C++学习者」· C++ 代码 · 共 70 行

CPP
70
字号
#include<iostream.h>
class Metric;
class English
{
  int foot,inch;
public:
   English()
   {
    foot=inch=0;
    }
   English(int val1,int val2)
   {
     foot=val1;
     inch=val2;
    }
   void display()
   {
     cout<<foot<<"ft."<<inch<<"in."<<endl;
   }
    operator Metric();		//类型转换函数,将英制转换成公制
};
class Metric
{
  int metre,cm;
public:
   Metric()
   {
     metre=cm=0;
    }
  Metric(int val1,int val2)
   {
     metre=val1;
     cm=val2;
    }
   void display()
   {
     cout<<metre<<"m"<<cm<<"cm"<<endl;
   }
    operator English();		//类型转换函数,将公制转换成英制
};
Metric::operator English()
{
  int foot=(metre+cm*0.01)/0.305;
  int inch=int((metre+cm*0.01)/0.305-foot+0.5)*12.0;
  return English(foot,inch);
}
English::operator Metric()
{
  int metre=(foot+inch/12.0)*0.305;
  int cm=((foot+inch/12.0)*0.305-metre)*100;
  return Metric(metre,cm);
}
void main()
{
  English A(10,10);
  Metric B;
  B=A;
  cout<<"The distance for object A is:";
  A.display();
  cout<<"The distance for object B is:";
  B.display();
  Metric C(10,10);
  English D;
  D=C;
  cout<<"The distance for object C is:";
  C.display();
  cout<<"The distance for object D is:";
  D.display();
}

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?