博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
c++——类 运算符重载
阅读量:5811 次
发布时间:2019-06-18

本文共 2026 字,大约阅读时间需要 6 分钟。

//运算符重载//重写的规则需要满足运算符本身的规则    class CMyPoint    {        int x, y;        public:        CMyPoint();        CMyPoint(int x, int y);        ~CMyPoint();        CMyPoint operator+(CMyPoint const& pt) const;//是不能修改this的值        friend CMyPoint operator-(CMyPoint const&p1, CMyPoint const & p2);        CMyPoint& operator++(); //前置,因为是自己,所以要加上&        CMyPoint operator++(int);//++后置,int是标识符 不使用& 是因为,先赋值在运算,赋值是产生一个临时变量先        friend ostream& operator<<(ostream& os, CMyPoint const& pt);//friend 因为在输入输出时,第一个参数不是this,而是输入输出流        friend istream& operator>>(istream& is, CMyPoint &pt);        };        CMyPoint CMyPoint::operator+(CMyPoint const& pt) const        {        CMyPoint tempPt;        tempPt.x = this->x + pt.x;        tempPt.y = this->y + pt.y;        return tempPt;    }    MyVector operator-( MyVector i, MyVector j)    {    return  MyVector(i.x-j.x, i.y-j.y);    }    CMyPoint& CMyPoint::operator++()    {        (*this).x++;        this->y++;        return *this;    }    CMyPoint CMyPoint::operator++(int)    {        CMyPoint tempPt = *this;        this->x++;        this->y++;        return tempPt;    }    ostream& operator<<(ostream& os, CMyPoint const& pt)    {        os << pt.x << '\t' << pt.y << endl;        return os;    }    istream& operator>>(istream& is, CMyPoint &pt)    {        is >> pt.x;        is >> pt.y;        return is;    }    CMyPoint operator-(CMyPoint const& p1, CMyPoint const& p2)    {        CMyPoint tempPt;        tempPt.x = p1.x - p2.x;        tempPt.y = p1.y - p2.y;        return tempPt;    }

 

 

//字符串的输入输出重载    ostream & operator << (ostream & os, CMyStr const& str)    {        os << str.pStr << '\n';        return os;    }    istream & operator >> (istream & is, CMyStr & str)    {        char * tempStr = new char[10240];        is >> tempStr;        if (str.pStr)        {            delete[]str.pStr;            str.pStr = NULL;        }        str.strcpy(tempStr);        delete[]tempStr;        return is;    }

 

转载于:https://www.cnblogs.com/ming-michelle/p/7617822.html

你可能感兴趣的文章
第十三单元练习题
查看>>
人工智能+娱乐,看英伟达如何用AI改变传统影像制作
查看>>
Tomcat系统加固规范
查看>>
JAVA与Tomcat(续二)
查看>>
一些小脚本与正则表达式
查看>>
BS中经常出现在的脚本错误
查看>>
Python 集合
查看>>
Linux 2 unit8 LDAP网络用户账户
查看>>
网站后台上传图片报错
查看>>
如何注销 RMS 服务器的 SCP
查看>>
linux搭建mysql主从服务
查看>>
apache下实现CA颁发及来源控制身份验证
查看>>
spring boot 1.5.4 配置文件详解(八)
查看>>
cobbler简单入门
查看>>
LINUX下发邮件
查看>>
python常用运维脚本实例
查看>>
vue知识点
查看>>
java基础-温故而知新(02)
查看>>
Dubbo分布式服务框架
查看>>
Kind Editor 编辑器 指定初始化模块
查看>>