郸城网站建设,汕头市研发网站建设,视频号怎么推广直播,企业的网站设计采用operator实现operator优点#xff1a;
降低维护成本#xff0c;只需要维护operator即可#xff1b;如果operator为publicoperator不需要称为class的友元#xff1b;通过模板的方式自动实现operator版本#xff1b;提供两种操作方式#xff0c;operator效率高#x…采用operator实现operator优点
降低维护成本只需要维护operator即可如果operator为publicoperator不需要称为class的友元通过模板的方式自动实现operator版本提供两种操作方式operator效率高operator易于撰写和维护 operator比operator效率高可以通过返回值优化避免临时对象的构造和析构成本
class Rational {
public:Rational(int numerator 0, int denominator 1) : _numerator(numerator), _denominator(denominator) {}double asDouble() const {return double(_numerator)/_denominator;}int numerator() const { return _numerator; }int denominator() const { return _denominator; }Rational operator(const Rational rhs) {_numerator rhs.numerator();_denominator rhs.denominator();return *this;}private:int _numerator;int _denominator;
};// const Rational operator(const Rational lhs, const Rational rhs) {
// return Rational(lhs) rhs;
// }
template typename T
const T operator(const T lhs, const T rhs) {return T(lhs) rhs;
}int main() {Rational a, b, c, result;result a b c;result a;result b;result c;return 0;
}