C++函数运算符重载

来源:互联网 发布:java开发 常用代码 编辑:程序博客网 时间:2024/06/10 21:34

C++函数运算符重载

本例以+运算符为例来理解运算符重载:


main.cpp

#include <iostream>#include "Suya.h"using namespace std;int main(int argc, const char *argv[]){    Suya *pc = new Suya(20);    cout << pc->getValue() << endl;    Suya c1(20);    Suya c2(30);    Suya c3 = c1 + c2;    //Suya Suya::operator+(Suya c2)    Suya c4 = c1 + c2 + c3;    //Suya Suya::operator+(Suya c2 + c3)    //Suya Suya::operator+(Suya Suya::operator+(Suya c3))    cout << "函数重载:" << c3.getValue() << endl;    system("pause");    return 0;}

suya.h

#pragma onceclass Suya{public:    Suya(int value);    int getValue();    Suya operator+(Suya value);private:    int value_;};

suya.cpp

#include "suya.h"Suya::Suya(int value){    value_ = value;}int Suya::getValue(){    return value_;}Suya Suya::operator+(Suya value){    return this->value_ + value.value_;}

备注

MyClass MyClass::operator+(MyClass paramName)
//+为二元操作符,需要两个操作数,paramName参数为右侧操作数,左侧操作数为this

2016年12月17日01:06:04

0 0
原创粉丝点击