重载运算符操作_学习
//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;
}
重载运算符操作_学习相关推荐
- 利用insert、update和delete命令可以同时对多个表进行操作_学习笔记-操作系统(1)...
概念 负责管理协调硬件.软件等计算机资源的工作 为上层用户.应用程序提供简单易用的服务 是一种系统软件 功能和目标 资源的管理者 处理机管理:进程管理(进程控制.进程同步.进程通信.死锁处理.处理机调 ...
- java重载运算符_流形:Java的运算符重载
java重载运算符 .tg {border-collapse:collapse;border-spacing:0;} .tg td{font-family:Arial, sans-serif;font ...
- C++高级编程(第3版)_学习记录
<C++高级编程(第3版)> Professional C++, Third Edition [美]Narc Gregoire 著,张永强 译,清华大学出版社,2015.5第1版 文章目录 ...
- php中new运算符的作用,C++_C++编程中new运算符的使用学习教程,new运算符用作从自由存储为 typ - phpStudy...
C++编程中new运算符的使用学习教程 new运算符用作从自由存储为 type-name 的对象或对象数组分配内存,并将已适当分类的非零指针返回到对象. [::] new [placement] ne ...
- pycharm 类型注释_学习Python第一步,变量与数据类型
Python是一门易学的面向对象的程序设计语言,可以轻易地完成界面.文件.封装等高阶需求,可移植性好,有非常多功能强大的库与包,如Numpy(数值计算).SciPy(数学.科学与工程计算).Matpl ...
- vs2003 局部友元访问私有不可访问_C++ 类:重载运算符与友元
18.类中重载运算符与友元 上次节中学习了如何在类中重新定义赋值(=)运算符,实际上在一个自定义类中除了赋值(=)运算符外,类的对象是不可以直接使用运算符的,比如你在main函数中写这样的代码会报错: ...
- 用Python重载运算符方法实现的复数类
最近开始学习了一下Python,发现其有些特性还是挺诱人的,比如运算符可以重载.对于我这样习惯用C++的老农来说,Java这样不能重载运算符的OOP语言实在是感觉存在有些遗憾.而能支持重载运算符可以使 ...
- C++ 重载运算符简单举例
我们可以重定义或重载大部分 C++ 内置的运算符.这样,就能使用自定义类型的运算符. 重载的运算符是带有特殊名称的函数,函数名是由关键字 operator 和其后要重载的运算符符号构成的.与其他函数一 ...
- 中双目运算符_C++日志(四十)教你如何以非成员函数的形式重载运算符
上一篇日志中讲述了如何通过类的非静态函数成员,进行运算符重载: 机器学习入坑者:C++日志(三十九)教你如何以类的非静态成员函数形式重载运算符zhuanlan.zhihu.com 在C++中,同样可 ...
最新文章
- java ognl 性能_OGNL详解
- C++_volatile限定修饰符 Pair类型
- iOS开发OC基础:Xcode中常见英文总结,OC常见英文错误
- 性别分析--微信数据分析(一)
- Qt配置GUI程序控制台输出
- etc的常见算法_谈常用的几个机器学习算法,学懂算法也可以这么简单!
- 为app录制展示gif
- 你真的会搜索?低效的你简直在浪费生命(三)(终结篇)
- VS2015 vc++ 项目出现new.h找不到的错误
- Java堆溢出错误:java.lang.OutOfMemoryError: Java heap space
- 查看数值类型python_python怎么看数据类型
- redhat rhel 7中如何切换中英文输入法。
- 大家好,我就是那个提【换手机壳颜色变app主题】需求的“产品经理”
- html盒子中盒子排列,解析CSS的box model盒模型及其内的子元素布局控制
- 使用WangEditor编辑器使用图片上传功能
- Nginx 入门指南
- 罗斯福国家森林树木类型识别
- YTU-OJ-多重继承
- linux打开笔记本摄像头
- flash player调试
热门文章
- 学习笔记 - MarkDown 语法
- .Net+MySQL组合开发(二) 数据访问篇
- UITableView定制accessoryView出现的连带问题
- 爱数应用容灾部署方案三
- 小程序 node.js mysql_基于Node.js+MySQL开发的开源微信小程序B2C商城(页面高仿网易严选)...
- OpenCV2:应用篇 三维重建
- 值得一用的Windows软件
- 2018-2019-2 20175235 实验四《Android开发基础》实验报告
- php框架之laravel
- 【CH4302】Interval GCD