#include <iostream>
using namespace std; class CVector
{
public:
int x, y;
CVector()
: x(), y()
{
}
CVector(int a, int b)
: x(a), y(b)
{
}
;
CVector operator +(const CVector&);
}; //+号是双目运算,这个成员函数的形式
CVector CVector::operator +(const CVector& param)
{
CVector temp;
temp.x = x + param.x;
temp.y = y + param.y;
return temp;
} //+号的非成员函数形式
CVector operator+(const CVector& lhs, const CVector& rhs)
{
cout<<"no member function"<<endl;
CVector temp;
temp.x = lhs.x + rhs.x;
temp.y = lhs.y + rhs.y;
return temp;
}
/**
*运算符重载表,注意成员函数和非成员函数的区别
* Expression Operator Member function Non-member function
* @a + - * & ! ~ ++ -- A::operator@() operator@(A)
* a@ ++ -- A::operator@(int) operator@(A,int)
* a@b + - * / % ^ & | < > == != <= >= << >> && || , A::operator@(B) operator@(A,B)
* a@b = += -= *= /= %= ^= &= |= <<= >>= [] A::operator@(B) -
* a(b,c...) () A::operator()(B,C...) -
* a->b -> A::operator->() -
* (TYPE) a TYPE A::operator TYPE() -
*/ int main()
{
CVector foo(, );
CVector bar(, );
CVector result;
CVector result2 = foo.operator +(bar);
result = foo + bar;
CVector result3 = foo+bar;
cout << result.x << ',' << result.y << endl;
cout << result2.x << ',' << result2.y << endl;
cout << result3.x << ',' << result3.y << endl;
return ;
}

C++官方文档-运算符重载的更多相关文章

  1. 《Apache Velocity用户指南》官方文档

    http://ifeve.com/apache-velocity-dev/ <Apache Velocity用户指南>官方文档 原文链接   译文连接 译者:小村长  校对:方腾飞 Qui ...

  2. Spring 通读官方文档

    Spring 通读官方文档 这部分参考文档涵盖了Spring Framework绝对不可或缺的所有技术. 其中最重要的是Spring Framework的控制反转(IoC)容器.Spring框架的Io ...

  3. 【AutoMapper官方文档】DTO与Domin Model相互转换(中)

    写在前面 AutoMapper目录: [AutoMapper官方文档]DTO与Domin Model相互转换(上) [AutoMapper官方文档]DTO与Domin Model相互转换(中) [Au ...

  4. Kotlin开发语言文档(官方文档)-- 目录

    开始阅读Kotlin官方文档.先上文档目录.有些内容还未阅读,有些目录标目翻译还需琢磨琢磨.后续再将具体内容的链接逐步加上. 文档链接:https://kotlinlang.org/docs/kotl ...

  5. Spark SQL 官方文档-中文翻译

    Spark SQL 官方文档-中文翻译 Spark版本:Spark 1.5.2 转载请注明出处:http://www.cnblogs.com/BYRans/ 1 概述(Overview) 2 Data ...

  6. clang format 官方文档自定义参数介绍(中英文)

    官方文档:http://clang.llvm.org/docs/ClangFormatStyleOptions.html 中文 在代码中配置样式 当使用 clang::format::reformat ...

  7. TestNG官方文档中文版(2)-annotation(转)

    1. 介绍    TestNG是一个设计用来简化广泛的测试需求的测试框架,从单元测试(隔离测试一个类)到集成测试(测试由有多个类多个包甚至多个外部框架组成的整个系统,例如运用服务器). 编写一个测试的 ...

  8. Matlab最新的官方文档中文翻译

    文章翻译的是Matlab最新的官方文档R2016b,可能后续如果我还有时间会继续翻译,希望能够帮到大家,翻译的不好请大家不要吐槽. Matlab官方文档地址:http://cn.mathworks.c ...

  9. OpenGL ES着色器语言之语句和结构体(官方文档第六章)内建变量(官方文档第七、八章)

    OpenGL ES着色器语言之语句和结构体(官方文档第六章) OpenGL ES着色器语言的程序块基本构成如下: 语句和声明 函数定义 选择(if-else) 迭代(for, while, do-wh ...

随机推荐

  1. [LeetCode&Python] Problem 807. Max Increase to Keep City Skyline

    In a 2 dimensional array grid, each value grid[i][j] represents the height of a building located the ...

  2. Laravel学习之旅(二)

    控制器 一.怎么编写控制器? 1.控制器文件存放路径:app\Http\Controllers: 2.命名规范如:TestController.php 3.完整的控制器例子如下: <?php n ...

  3. 杭电oj2001-C语言

    题目 题目 Problem Description 输入两点坐标(X1,Y1),(X2,Y2),计算并输出两点间的距离. Input 输入数据有多组,每组占一行,由4个实数组成,分别表示x1,y1,x ...

  4. Wireless Network 并查集

    An earthquake takes place in Southeast Asia. The ACM (Asia Cooperated Medical team) have set up a wi ...

  5. win10系统把文件夹固定到任务栏

    为某个文件夹创建快捷方式 右键该快捷方式,选择固定到开始屏幕 点击win图标进入开始屏幕,在屏幕的右侧有刚才固定的快捷方式 右键该快捷方式,选择固定到任务栏即可.

  6. 【BZOJ2558】Count on a tree

    又是因为傻逼错误浪费了半天时间 原题: 给定一棵N个节点的树,每个点有一个权值,对于M个询问(u,v,k),你需要回答u xor lastans和v这两个节点间第K小的点权.其中lastans是上一个 ...

  7. 部署tomcat到Linux

    1. alt+p   放文件 2.解压到自定义 apps文件夹中 tar -zxvf apache-tomcat-7.0.68.tar.gz -C apps 3.进入文件启动tomcat/bin ./ ...

  8. php empty详解

    判断字符串是否为空,可以这么判断: if ($value=="") ...    * 格式:bool empty ( mixed var )    * 功能:检查一个变量是否为空  ...

  9. 在CentOS和RHEL中配置SNMPv3

    首先,使用yum安装必要的软件 [root@server ~]# yum install net-snmp-utils net-snmp-devel安装完成之后, 先停止snmpd,再创建具有只读属性 ...

  10. ASM 磁盘、目录的管理

    --======================== -- ASM 磁盘.目录的管理 --======================== ASM磁盘是ASM体系结构的重要组成部分,ASM磁盘由ASM ...