重载加减之后,返回原对象。
复制构造函数在初始化时即使用。
#include <vector>
#include <iostream>
#include <string>
#include<cmath>
using namespace std;
class Angle{
private:
double m_AngleDegree;
const double Pi = 3.1415926;
public:
Angle(){}
Angle(double angle) {
m_AngleDegree = angle;
}
Angle(const Angle& temp) {
this->m_AngleDegree = temp.m_AngleDegree;
}
~Angle(){}
Angle operator+(const Angle& temp) {
return Angle(this->m_AngleDegree + temp.m_AngleDegree);
}
Angle operator-(const Angle& temp) {
return Angle(this->m_AngleDegree - temp.m_AngleDegree);
}
void operator=(const Angle& temp) {
this->m_AngleDegree = temp.m_AngleDegree;
}
double getAngle() const {
return m_AngleDegree;
}
double getSin() const {
return sin(m_AngleDegree/180.0*Pi);
}
};
int main()
{
Angle a1(180), a2(90),a3(a1-a2);
cout<<"sin("<<a3.getAngle()<<") = "<<a3.getSin()<<endl;
system("pause");
return 0;
}