C++读书笔记之 赋值运算符= 重载 前缀自减运算符--重载 求负运算符- 重载
/**重载赋值运算符 = **/
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;
}
[cpp]
#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.
***************************/
#include <iostream>
using namespace std;
class Distance
{
private:
double feet; // 0 to infinite
double inches; &nb
补充:软件开发 , C++ ,