三個類如下設計:類ctime有三個資料成員,hh,mm,ss,分別代表時,分和秒,並有若干建構函式和乙個過載-(減號)的成員函式。類point有兩個資料成員,x,y分別座標,並有若干建構函式和乙個過載-(減號)的成員函式。類date有三個資料成員,year,month,day分別代表年月日,並有若干建構函式和乙個過載-(減號)的成員函式。
要求設計乙個函式模板template <\class t>\ double dist(t a, t b) 對int,float,ctime,point和date或者其他型別的資料,返回間距。
其中,hh = 3600 ss, mm = 60 ss, year = 365 day, month = 30 day,對於ctime和date型別,資料在轉換成ss或者day後進行運算。
輸入格式:
每一行為乙個操作,每行的第乙個數字為元素型別,1為整型元素,2為浮點型元素,3為point型別,4,為time型別,5為date型別,若為整型元素,接著輸入兩個整型資料,
若為浮點型元素,接著輸入兩個浮點型資料,若為point型元素,輸入兩個point型資料(x1 y1 x2 y2),若為time型元素, 輸入兩個ctime型資料(hh1 mm1 ss1 hh2 mm2 ss2),若為date型資料,輸入兩個date型資料(year1 month1 day1 year2 month2 day2)。輸入0時標誌輸入結束。
輸出格式:
對每個輸入,每行輸出乙個間距值。
樣例輸入:
1 2 5
4 18 21 22 18 20 31
3 2 4 5 9
5 2013 5 14 2013 5 15
2 2.2 9.9
0樣例輸出:351
5.83095
17.7
#include
#include
using
namespace std;
class
ctime
;friend
intoperator
-(ctime,ctime);}
;class
date
;friend
intoperator
-(date,date);}
;class
point
;friend
double
operator
-(point,point);}
;template
<
class
t>
double
dist
(t a,t b)
intoperator
-(ctime a,ctime b)
intoperator
-(date a,date b)
double
operator
-(point a,point b)
intmain()
else
if(flag==1)
else
if(flag==2)
else
if(flag==3)
else
if(flag==4)
else
}return0;
}
PTA 資料的間距問題(函式模板)
資料的間距問題 函式模板 類point有三個資料成員 x y和z,分別代表x座標 y座標和z座標,並有若干建構函式和乙個過載 減號,計算兩點距離 的成員函式。要求設計乙個函式模板,template class t double dist t a,t b 對int,float,point或者其他型別的...
PTA 7 69 資料的間距問題
複數類complex有兩個資料成員 a和b,分別代表複數的實部和虛部,並有若干建構函式和乙個過載 減號,用於計算兩個複數的距離 的成員函式。要求設計乙個函式模板 template class t double dist t a,t b 對int,float,complex或者其他型別的資料,返回兩個...
函式的過載與函式模板
有時候想要實現幾個功能相近,但只是處理的引數型別不同的函式,在c語言裡我們要把這些函式起上不同的名字,而在c 裡我們可以把這些函式都給上乙個函式名只需要把不同的引數給入函式就可以了,這樣大大的減少了函式名的數量,增強了 的可讀性。c 中這叫做函式的過載,是在同一作用域內宣告幾個功能類似的同名函式,但...