C++中运算符重载

来源:互联网 发布:oracle not like 优化 编辑:程序博客网 时间:2024/06/14 06:38

下面代码实现+、()、=的运算符重载,仅供参考。

#include <iostream>class Body{public:    Body(int a = 0):m_a(a) {}    ~Body() {}#include <iostream>class Body{public:    Body(int a = 0):m_a(a) {}    ~Body() {}    Body(const Body& a) {        this -> m_a = a.m_a;    }    // +运算符重载    Body operator+(const Body& a) {        Body bd;        bd.m_a = this -> m_a + a.m_a;        return bd;    }    // ()运算符重载    int operator()(int i) {        return this -> m_a + i;    }    // =运算符重载    Body& operator=(const Body& a) {        this -> m_a = a.m_a;        return *this;    }    int get() {        return m_a;    }private:    int m_a;};int main(int argc, char** args) {    Body a(1);    Body b(100);    Body result = a = b;    std::cout << "a: " << result.get() << std::endl;    std::cout << (a + b).get() << std::endl;    std::cout << a(999) << std::endl;    return 0;}
0 0
原创粉丝点击