?? 程序10.11:英制與數(shù)相加_加號(hào)運(yùn)算符重載.cpp
字號(hào):
/* 程序10.11:英制與數(shù)相加_加號(hào)運(yùn)算符重載.cpp:*/
#include<iostream> //包含頭文件
#include<string> //包含頭文件
using namespace std; //使用名字空間std
class Length //聲明一個(gè)類Length
{
private:
int iFeet; //聲明私有成員變量
int iInch;
public:
Length(); //聲明無參數(shù)構(gòu)造符函數(shù)
Length(int,int); //聲明有參數(shù)構(gòu)造符函數(shù)
Length operator+(Length); //聲明加號(hào)運(yùn)算符函數(shù)
Length operator+(int); //聲明加號(hào)運(yùn)算符函數(shù)
void display(string); //聲明顯示英制長度函數(shù)
};
int main() //main()函數(shù)開始
{
Length L1(3,10); //聲明類對象L1,調(diào)用有參數(shù)構(gòu)造符
Length L2(4,6); //聲明類對象L2,調(diào)用有參數(shù)構(gòu)造符
cout<<"\n重載operator+()加號(hào)運(yùn)算符函數(shù)前"<<endl;
L1.display("L1"); //調(diào)用顯示英制長度函數(shù)
L2.display("L2"); //調(diào)用顯示英制長度函數(shù)
Length L3; //聲明類對象L3,調(diào)用無參數(shù)構(gòu)造符
L3=L1+L2; //等價(jià)于L1.operator+(L2);
cout<<"\nL1+L2重載operator+(Length)加號(hào)運(yùn)算符函數(shù)后"<<endl;
L3.display("L3"); //調(diào)用顯示英制長度函數(shù)
L3=L3+10;
cout<<"\nL3+10重載operator+(int)加號(hào)運(yùn)算符函數(shù)后"<<endl;
L3.display("L3"); //調(diào)用顯示英制長度函數(shù)
return 0;
} //main()函數(shù)結(jié)束
Length::Length() //定義構(gòu)造符函數(shù)
{
iFeet=0;
iInch=0;
}
Length::Length(int iFeet,int iInch) //定義構(gòu)造符函數(shù)
{
this->iFeet=iFeet;
this->iInch=iInch;
}
Length Length::operator+(Length N) //定義加號(hào)運(yùn)算符函數(shù)
{
cout<<"\n類對象相加運(yùn)算符函數(shù)operator+()被重載"<<endl;
Length Temp;
Temp.iFeet=iFeet+N.iFeet;
Temp.iInch=iInch+N.iInch;
while(Temp.iInch>=12)
{
Temp.iFeet++;
Temp.iInch-=12;
}
return Temp;
}
Length Length::operator+(int iNum) //定義加號(hào)運(yùn)算符函數(shù)
{
cout<<"\n類對象與數(shù)相加運(yùn)算符函數(shù)operator+()被重載"<<endl;
Length Temp=*this;
// Temp.iFeet=iFeet;
Temp.iInch=iInch+iNum;
while(Temp.iInch>=12)
{
Temp.iFeet++;
Temp.iInch-=12;
}
return Temp;
}
void Length::display(string s) //定義顯示英制長度函數(shù)
{
cout<<s<<" = "<<iFeet<<"\' "<<iInch<<"\" "<<endl;
}
?? 快捷鍵說明
復(fù)制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號(hào)
Ctrl + =
減小字號(hào)
Ctrl + -