C++学习笔记15:操作符重载的函数原型列表(推荐)
//普通四则运算
friend A operator +(const A & lhs, const A & rhs);
friend A operator -(const A & lhs, const A & rhs);
friend A operator *(const A & lhs, const A & rhs);
friend A operator /(const A & lhs, const A & rhs);
friend A operator %(const A & lhs, const A & rhs);
friend A operator *(const A & lhs, const int & rhs);//标量运算,如果存在
friend A operator *(const int & lhs, const A & rhs);//标量运算,如果存在 //关系操作符
friend bool operator == (const A & lhs, const A & rhs);
friend bool operator != (const A & lhs, const A & rhs);
friend bool operator < (const A & lhs, const A & rhs);
friend bool operator <= (const A & lhs, const A & rhs);
friend bool operator > (const A & lhs, const A & rhs);
friend bool operator >= (const A & lhs, const A & rhs); //逻辑操作符
friend bool operator || (const A & lhs, const A & rhs);
friend bool operator && (const A & lhs, const A & rhs);
bool A::operator!(); //正负操作符
A A::operator +();//取正
A A::operator -();//取负 //递增递减操作符
A & A::operator++();//前缀递增
A A::operator++(int);//后缀递增
A & A::operator--();//前缀递减
A A::operator--(int);//后缀递减 //动态存储管理操作符:全局或者成员函数均可
void * operator new(std::size_t size) throw(bad_alloc);
void * operator new(std::size_t size, const std::nothrow_t &) throw();
void * operator new(std::size_t size, void *base) throw();
void * operator new[](std::size_t size) throw(bad_alloc);
void operator delete(void *p);
void operator delete[](void *p); //赋值操作符
A & operator = (A &rhs);
A & operator = (const A & rhs);
A & operator = (A && rhs);
A & operator += (const A & rhs);
A & operator -= (const A & rhs);
A & operator *= (const A & rhs);
A & operator %= (const A & rhs);
A & operator &= (const A & rhs);
A & operator /= (const A & rhs);
A & operator |= (const A & rhs);
A & operator ^= (const A & rhs);
A & operator <<= (int n);
A & operator >>= (int n); //下标操作符
T & A::operator[] (int i);
const T & A::operator[](int i)const; //函数调用操作符
T A::operator()(...);//参数可选 //类型转换操作符
A::operator char *() const;
A::operator int() const;
A::operator double() const; //逗号操作符
T2 operator,(T1 t1, T2 t2);//不建议重载 //指针与选员操作符
A * A::operator & ();//取址操作符
A & A::operator *();//引领操作符
const A & A::operator *() const;//引领操作符
C * A::operator->();//选员操作符
const C * A::operator->() const;//选员操作符
C & A::operator->*(...);//选员操作符,指向类成员的指针 //流操作符
friend ostream & operator << (ostream &os, const A &a);
friend istream & operator >> (istream &is, A &a);
C++学习笔记15:操作符重载的函数原型列表(推荐)的更多相关文章
- OpenCV学习笔记(15)——更多的轮廓函数
凸缺陷,以及如何找到凸缺陷 找某一点到一个多边形的最短距离 不同形状的匹配 1.凸缺陷 前面已经设计了轮廓的凸包和凸性缺陷的概念.OpenCV中有一个函数cv2.convexityDefect()可以 ...
- SQL反模式学习笔记15 分组
目标:查询得到每组的max(或者min等其他聚合函数)值,并且得到这个行的其他字段 反模式:引用非分组列 单值规则:跟在Select之后的选择列表中的每一列,对于每个分组来说都必须返回且仅返回一直值. ...
- 并发编程学习笔记(15)----Executor框架的使用
Executor执行已提交的 Runnable 任务的对象.此接口提供一种将任务提交与每个任务将如何运行的机制(包括线程使用的细节.调度等)分离开来的方法.通常使用 Executor 而不是显式地创建 ...
- C++基础 学习笔记五:重载之运算符重载
C++基础 学习笔记五:重载之运算符重载 什么是运算符重载 用同一个运算符完成不同的功能即同一个运算符可以有不同的功能的方法叫做运算符重载.运算符重载是静态多态性的体现. 运算符重载的规则 重载公式 ...
- Ext.Net学习笔记15:Ext.Net GridPanel 汇总(Summary)用法
Ext.Net学习笔记15:Ext.Net GridPanel 汇总(Summary)用法 Summary的用法和Group一样简单,分为两步: 启用Summary功能 在Feature标签内,添加如 ...
- ES6学习笔记<二>arrow functions 箭头函数、template string、destructuring
接着上一篇的说. arrow functions 箭头函数 => 更便捷的函数声明 document.getElementById("click_1").onclick = ...
- python3.4学习笔记(二十) python strip()函数 去空格\n\r\t函数的用法
python3.4学习笔记(二十) python strip()函数 去空格\n\r\t函数的用法 在Python中字符串处理函数里有三个去空格(包括'\n', '\r', '\t', ' ')的函数 ...
- APUE学习笔记——10.9 信号发送函数kill、 raise、alarm、pause
转载注明出处:Windeal学习笔记 kil和raise kill()用来向进程或进程组发送信号 raise()用来向自身进程发送信号. #include <signal.h> int k ...
- Flutter学习笔记(4)--Dart函数
如需转载,请注明出处:Flutter学习笔记(4)--Dart函数 Dart是一个面向对象的语言,所以函数也是对象,函数属于Function对象,函数可以像参数一样传递给其他函数,这样便于做回调处理: ...
随机推荐
- firefox hack
@-moz-document url-prefix(){ css选择器 { css样式设置 } }
- splunk rest api search
如下: curl -u admin:changeme -k https://localhost:8089/services/search/jobs -d search="search sou ...
- Oracle11g中ORA-01790
问题源于群里有人问如何让查询的结果值+1,方法其实很简单,直接在SQL语句中+1就可以,如果有空可以用NVL处理. 但是测试的时候我使用了UNION ALL(测试的字段是varchar2类型),结果报 ...
- noip知识点总结之--欧几里得算法和扩展欧几里得算法
一.欧几里得算法 名字非常高大上的不一定难,比如欧几里得算法...其实就是求两个正整数a, b的最大公约数(即gcd),亦称辗转相除法 需要先知道一个定理: gcd(a, b) = gcd(b, a ...
- Blackhat EU 2013 黑客大会(Full Schedule for Black Hat USA 2013)
大会文档下载:https://www.blackhat.com/eu-13/archives.html 此次BH EU 议题整体较水,涉及系统安全.移动安全.网络传输安全.WEB安全.游戏安全等.下面 ...
- bzoj 2661: [BeiJing wc2012]连连看
#include<cstdio> #include<iostream> #include<cstring> #include<cmath> #inclu ...
- hdu 4609 3-idiots
http://acm.hdu.edu.cn/showproblem.php?pid=4609 FFT 不会 找了个模板 代码: #include <iostream> #include ...
- MongoDB Aggregate Methods(2) MonoDB 的 3 种聚合函数
aggregate(pipeline,options) 指定 group 的 keys, 通过操作符 $push/$addToSet/$sum 等实现简单的 reduce, 不支持函数/自定义变量 g ...
- HDU 2594 扩展kmp模板题
题目大意: 给定两个字符串,在第一个字符串中找到一个最大前缀作为第二个字符串的后缀 #include <iostream> #include <cstdio> #include ...
- 银行支票和汇票中使用的专用字体MICR E13B条形码控件字体
MICR E13B条形码控件字体是一种在美国.加拿大.波多黎各.巴拿马.英国和其它少数国家的银行支票和汇票中使用的专用字体,主要用来打印适用于磁性和光学字符识别系统的MICR字符.MICR E13B条 ...