C++操作符重载

来源:互联网 发布:昊翔无人机软件 编辑:程序博客网 时间:2024/06/06 09:07

整理部分C++操作符重载,直接上代码:

myOperator.h

#pragma once#include <iostream>using namespace std;class myOperator{public:myOperator():x(0),y(0){a[0] = a[1] = 0;}friend ostream& operator<<(ostream& os, const myOperator& o);friend istream& operator>>(istream& is, myOperator& o);friend myOperator operator+(myOperator& p1, myOperator& p2);// 对象相加friend myOperator operator+(int value, myOperator& p1); // 对象和值相加friend bool operator==(const myOperator& p1, const myOperator& p2);friend bool operator!=(const myOperator& p1, const myOperator& p2);public:myOperator& operator=(const myOperator& p1);myOperator& operator+=(const myOperator& p1);int& operator[](int& i){return *(a+i);}const int& operator[](const int& i){return *(a+i);}private:string name;int x;int y;int a[2];};

 

myOperator.cpp

#include "myOperator.h"#include <string>ostream& operator<<(ostream& os, const myOperator& o){os<<o.x<<o.y<<o.name;return os;}istream& operator>>(istream& is, myOperator& o){is>>o.x>>o.y>>o.name;return is;}myOperator operator+(myOperator& p1, myOperator& p2){myOperator temp;temp.x = p1.x + p2.x;temp.y = p1.y + p2.y;temp.name = p1.name + p2.name;return temp;}myOperator operator+(int value, myOperator& p1){myOperator temp;temp.x = p1.x + value;temp.y = p1.y + value;//temp.name = p1.name.size() + value;return temp;}bool operator==(const myOperator& p1, const myOperator& p2){return (p1.x==p2.x)&&(p1.y==p2.y)&&(p1.name==p2.name);}bool operator!=(const myOperator& p1, const myOperator& p2){return !(p1==p2);}myOperator& myOperator::operator=(const myOperator& p1){this->x = p1.x;this->y = p1.y;this->name = p1.name;return *this;}myOperator& myOperator::operator+=(const myOperator& p1){this->x += p1.x;this->y += p1.y;this->name += p1.name;return *this;}


 

0 0
原创粉丝点击