//A:  操作符重载实现为类成员函数
/*
#include <iostream>
class Person
{
private:int age;
public:Person(int a){this->age=a;}//inline bool operator==(const Person &ps)const;inline bool operator==(const Person *ps)const;
};
//inline bool Person::operator==(const Person &ps)const{
//  std::cout<<"this->age=="<<this->age<<",  ps.age=="<<ps.age<<"\n";
//  if(this->age == ps.age)
//      return true;
//  else
//      return false;
//};
inline bool Person::operator==(const Person *ps)const{std::cout<<"this->age=="<<this->age<<",  ps->age=="<<ps->age<<"\n";if(this->age == ps->age)return true;elsereturn false;
};int main()
{//Person p1(10);//Person p2(10);Person *a = new Person(10);Person *b =  new Person(10);//if(p1 == p2)if(a == b){std::cout<<"相等\n";}elsestd::cout<<"不相等\n";system("pause");return 0;//由上面的测试可以得出结论,指针与指针之间是不能进行重载运算符比较的
}*///B:操作符重载实现为非类成员函数(全局函数)
#include <iostream>
using namespace std;
class Person
{
public:int age;
};
bool operator==(Person const &p1, Person const &p2)
{if(p1.age == p2.age)return true;elsereturn false;
};class Test
{
private:int m_value;
public:Test(int x=3){ m_value = x; }Test &operator++(); //前增量Test &operator++(int);//后增量void display(){cout<<"m_value="<<m_value<<"\n";}
};//前增量 Test& 是指返回一个Test的地址
Test& Test::operator++(){m_value++; //先增量return *this; //返回当前对像
};//后增量
Test& Test::operator++(int)
{Test tmp(*this); //创建临时对像m_value++; //再增量return tmp; //返回临时对像
}int main()
{Person a;Person b;a.age=10;b.age=10;if(a == b){cout<<"相等\n";}elsecout<<"不相等\n";cout<<"进行另外一个测试\n";Test t;t.display();t++;t.display();++t;t.display();system("pause");return 0;
}

  

重载运算符操作_学习相关推荐

  1. 利用insert、update和delete命令可以同时对多个表进行操作_学习笔记-操作系统(1)...

    概念 负责管理协调硬件.软件等计算机资源的工作 为上层用户.应用程序提供简单易用的服务 是一种系统软件 功能和目标 资源的管理者 处理机管理:进程管理(进程控制.进程同步.进程通信.死锁处理.处理机调 ...

  2. java重载运算符_流形:Java的运算符重载

    java重载运算符 .tg {border-collapse:collapse;border-spacing:0;} .tg td{font-family:Arial, sans-serif;font ...

  3. C++高级编程(第3版)_学习记录

    <C++高级编程(第3版)> Professional C++, Third Edition [美]Narc Gregoire 著,张永强 译,清华大学出版社,2015.5第1版 文章目录 ...

  4. php中new运算符的作用,C++_C++编程中new运算符的使用学习教程,new运算符用作从自由存储为 typ - phpStudy...

    C++编程中new运算符的使用学习教程 new运算符用作从自由存储为 type-name 的对象或对象数组分配内存,并将已适当分类的非零指针返回到对象. [::] new [placement] ne ...

  5. pycharm 类型注释_学习Python第一步,变量与数据类型

    Python是一门易学的面向对象的程序设计语言,可以轻易地完成界面.文件.封装等高阶需求,可移植性好,有非常多功能强大的库与包,如Numpy(数值计算).SciPy(数学.科学与工程计算).Matpl ...

  6. vs2003 局部友元访问私有不可访问_C++ 类:重载运算符与友元

    18.类中重载运算符与友元 上次节中学习了如何在类中重新定义赋值(=)运算符,实际上在一个自定义类中除了赋值(=)运算符外,类的对象是不可以直接使用运算符的,比如你在main函数中写这样的代码会报错: ...

  7. 用Python重载运算符方法实现的复数类

    最近开始学习了一下Python,发现其有些特性还是挺诱人的,比如运算符可以重载.对于我这样习惯用C++的老农来说,Java这样不能重载运算符的OOP语言实在是感觉存在有些遗憾.而能支持重载运算符可以使 ...

  8. C++ 重载运算符简单举例

    我们可以重定义或重载大部分 C++ 内置的运算符.这样,就能使用自定义类型的运算符. 重载的运算符是带有特殊名称的函数,函数名是由关键字 operator 和其后要重载的运算符符号构成的.与其他函数一 ...

  9. 中双目运算符_C++日志(四十)教你如何以非成员函数的形式重载运算符

    上一篇日志中讲述了如何通过类的非静态函数成员,进行运算符重载: 机器学习入坑者:C++日志(三十九)教你如何以类的非静态成员函数形式重载运算符​zhuanlan.zhihu.com 在C++中,同样可 ...

最新文章

  1. java ognl 性能_OGNL详解
  2. C++_volatile限定修饰符 Pair类型
  3. iOS开发OC基础:Xcode中常见英文总结,OC常见英文错误
  4. 性别分析--微信数据分析(一)
  5. Qt配置GUI程序控制台输出
  6. etc的常见算法_谈常用的几个机器学习算法,学懂算法也可以这么简单!
  7. 为app录制展示gif
  8. 你真的会搜索?低效的你简直在浪费生命(三)(终结篇)
  9. VS2015 vc++ 项目出现new.h找不到的错误
  10. Java堆溢出错误:java.lang.OutOfMemoryError: Java heap space
  11. 查看数值类型python_python怎么看数据类型
  12. redhat rhel 7中如何切换中英文输入法。
  13. 大家好,我就是那个提【换手机壳颜色变app主题】需求的“产品经理”
  14. html盒子中盒子排列,解析CSS的box model盒模型及其内的子元素布局控制
  15. 使用WangEditor编辑器使用图片上传功能
  16. Nginx 入门指南
  17. 罗斯福国家森林树木类型识别
  18. YTU-OJ-多重继承
  19. linux打开笔记本摄像头
  20. flash player调试

热门文章

  1. 学习笔记 - MarkDown 语法
  2. .Net+MySQL组合开发(二) 数据访问篇
  3. UITableView定制accessoryView出现的连带问题
  4. 爱数应用容灾部署方案三
  5. 小程序 node.js mysql_基于Node.js+MySQL开发的开源微信小程序B2C商城(页面高仿网易严选)...
  6. OpenCV2:应用篇 三维重建
  7. 值得一用的Windows软件
  8. 2018-2019-2 20175235 实验四《Android开发基础》实验报告
  9. php框架之laravel
  10. 【CH4302】Interval GCD