题记:写这篇博客要主是加深自己对重载后缀的认识和总结实现算法时的一些验经和训教,如果有错误请指出,万分感谢。
/**重载赋值运算符 = **/
void operator=(const Distance &D )
{
feet = D.feet;
inches = D.inches;
}
/**重载负号运算符 - **/
Distance operator-()
{
feet = -feet;
inches = -inches;
return Distance(feet, inches);
}
/**重载前缀自减运算符 -- **/
Distance operator--()
{
--feet;
--inches;
return Distance(feet, inches);
}
/**重载后缀自减运算符 -- **/
Distance operator--(int)
{
Distance Temp(feet,inches);
feet--;
inches--;
return Temp;
}
#include <iostream> using namespace std; class Distance { private: double feet; // 0 to infinite double inches; // 0 to 12 public: // required constructors Distance() { feet = 0.0; inches = 0.0; } Distance(double f, double i) { feet = f; inches = i; } /**重载赋值运算符 = **/ void operator=(const Distance &D ) { feet = D.feet; inches = D.inches; } /**重载负号运算符 - **/ Distance operator-() { feet = -feet; inches = -inches; return Distance(feet, inches); } /**重载前缀自减运算符 -- **/ Distance operator--() { --feet; --inches; return Distance(feet, inches); } /**重载后缀自减运算符 -- **/ Distance operator--(int) { Distance Temp(feet,inches); feet--; inches--; return Temp; } // method to display distance void displayDistance() { cout << "Feet: " << feet << " Inches:" << inches << endl; } }; int main() { Distance D1(19.91, -20.13),D2; cout << "\nD1 Distance now: \n"; D1.displayDistance(); --D1; cout << "\nD1 Distance after --D1 : \n"; D1.displayDistance(); -D1; cout << "\nD1 Distance after -D1 : \n"; D1.displayDistance(); cout << "\nD1--.displayDistance():\n"; D1--.displayDistance(); // use assignment operator D2 = D1--; cout << "\nafter D2=D1-- Distance of D2 :\n"; D2.displayDistance(); cout << "\nafter D2=D1-- Distance of D1 :\n"; D1.displayDistance(); return 0; } /************************** 运行结果: D1 Distance now: Feet: 19.91 Inches:-20.13 D1 Distance after --D1 : Feet: 18.91 Inches:-21.13 D1 Distance after -D1 : Feet: -18.91 Inches:21.13 D1--.displayDistance(): Feet: -18.91 Inches:21.13 after D2=D1-- Distance of D2 : Feet: -19.91 Inches:20.13 after D2=D1-- Distance of D1 : Feet: -20.91 Inches:19.13 Process returned 0 (0x0) execution time : 0.819 s Press any key to continue. ***************************/
文章结束给大家分享下程序员的一些笑话语录: 联想——对内高价,补贴对外倾销的伟大“民族”企业。