C++ 运算符重载一(二元运算符重载)
//二元运算符重载
#include<iostream>
using namespace std; class Point
{
public:
Point(int x,int y){
this->x = x;
this->y = y;
}
//为什么要使用友元函数呢
friend Point operator+(Point &p1, Point &p2); //类成员函数实现二元运算符-
Point operator-(Point &pin){
//二元运算符最好不要改变原来的变量
Point temp = *this;
temp.x = this->x - pin.x;
temp.y = this->y - pin.y;
return temp;
}
void PrintfA(){
cout << "x=" << this->x << endl;
cout << "y=" << this->y << endl; }
private:
int x;
int y;
}; //友元函数
//因为函数中使用类的私有成员属性
Point operator+(Point &p1, Point &p2){
Point pres(p1.x+p2.x,p1.y+p2.y);
return pres;
} void ProtectA(){
//重载二元运算符 +
Point p1(, ), p2(, );
Point p3 = p1 + p2;
//全局函数(一般是友元函数),类成员函数实现运算符重载步骤
//步骤1:要承认操作符重载是一个函数,写出函数名称
//operator+
//步骤2:根据操作数,写出函数参数列表
//operator+(p1, p2);
//步骤3:根据业务,完成函数返回值,及实现函数
//p3=operator + (p1, p2);
p3.PrintfA(); //用类成员们函数实现
//由全局函数变成类成员函数
Point p4 = p1 - p2;
//步骤1:要承认操作符重载是一个函数,写出函数名称
//operator-()
//步骤2:根据操作数,写出函数参数列表,
///在类中,对象本身是this,所有可以少传递一个变量
//p1.operator-(p2);
//步骤3:根据业务,完成函数返回值,及实现函数
p4.PrintfA(); } void main(){
ProtectA();
system("pause");
}
C++ 运算符重载一(二元运算符重载)的更多相关文章
- C++运算符重载——重载二元运算符
1.重载二元操作符的方法 二元运算符又称为双目运算符,即需要2个操作数的运算符,例如 + - * / 等. 运算符重载可以分为3种方式:类的非静态成员函数.类的友元函数.普通函数. 例如有 2 个操作 ...
- JavaScript一元运算符、二元运算符和三元运算符
在JavaScript中,运算符可以根据其实际操作数的个数进行分类. JavaScript中的大多数运算符是一个二元运算符(binary operator),将两个表达式合并成为一个稍复杂的表达式.譬 ...
- C++之运算符重载(二元)
一.加号+ 1.成员函数重载 2.友元函数重载 二.输出符号<< 三.索引符号 [ ] 四.补充说明 1.<二元运算符重载>课程评论: (一)为什么<<运算符的重载 ...
- C++重载流插入运算符和流提取运算符【转】
C++的流插入运算符“<<”和流提取运算符“>>”是C++在类库中提供的,所有C++编译系统都在类库中提供输入流类istream和输出流类ostream.cin和cout分别是 ...
- C++运算符重载——输入/输出运算符
为了与IO标准库一致,重载输入输出运算符函数的第一个行参应该是流的引用,第二个行参是对象的引用. 如果重载为类的成员函数,第一个行参应该是对象的引用,第二个行参是流的引用. 使用方式是 ClassOb ...
- operator 重载内置运算符
operator 关键字来重载内置运算符,或提供类或结构声明中的用户定义转换.它可以定义不同类型之间采用何种转化方式和转化的结果. operator用于定义类型转化时可采用2种方式,隐式转换(impl ...
- C++重载运算符练习--对people类重载“= =”运算符和“=”运算符
题目描述 对people类重载“= =”运算符和“=”运算符,“==”运算符判断两个people类对象的id属性是否相等:“=”运算符实现people类对象的赋值操作. 代码如下 #include&l ...
- C++中不可重载5个运算符
C++中不可重载的5个运算符 C++中的大部分运算符都是可以重载的,只有以下5个运算符不可以重载,他们是: 1 .(点运算符)通常用于去对象的成员,但是->(箭头运算符),是可以重载的 2 ...
- 网易云课堂_C++程序设计入门(下)_第8单元:年年岁岁花相似– 运算符重载_第8单元 - 作业2:OJ编程 - 重载数组下标运算符
第8单元 - 作业2:OJ编程 - 重载数组下标运算符 查看帮助 返回 温馨提示: 1.本次作业属于Online Judge题目,提交后由系统即时判分. 2.学生可以在作业截止时间之前不限次数提 ...
随机推荐
- android java 设计模式详解 Demo
android java 设计模式详解 最近看了一篇设计模式的文章,深得体会,在此基础我将每种设计模式的案例都写成Demo的形式,方便读者研究学习, 首先先将文章分享给大家: 设计模式(Design ...
- Windows Phone ProgressRing 控件
在windows phone 8中,只有ProgressBar的控件,而没有圆环形的等待控件.今天我突发奇想,从Windows Store 的ProgressRing控件上copy下来的XAML 代码 ...
- eclipse debug 错误 之 processWorkerExit
eclipe 在debug模式下,有时候老是跳转到 ThreadPoolExecutor 之 processWorkerExit方法,很是让人恼火,是 因为在 java.util.concurrent ...
- phpredis中文手册——《redis中文手册》 php版(转)
redis中文手册:http://readthedocs.org/docs/redis/en/latest/ 本文是参考<redis中文手册>,将示例代码用php来实现,注意php-red ...
- javascript 模块化模式总结(二)
一.对象字面值 这种设计模式中,一个对象被描述为一组以逗号分隔的名称/值对括在大括号({})的集合.对象内部的名称可以是字符串或是标记符后跟着一个冒号":".在对象里最后一个名称/ ...
- Android屏幕计量单位详解
1.px (pixels)(像素):是屏幕的物理像素点,与密度相关,密度大了,单位面积上的px会比较多.通常不推荐使用这个. 2.dip或dp(与密度无关的像素):一个基于density的抽象单位,这 ...
- Docker的安装使用-第1章
Docker的安装 1.1 环境说明 操作系统: Red Hat Enterprise Linux Server release 7.1 软件环境: 系统已经配置了yum安装源 软件版本: docke ...
- 拒绝蛋疼,javascript调试技巧
chrome的调试技巧网上很多介绍了,这里提两个个人觉得比较有用的: 1.console.log 优点:可以输出json对象,而非字符串,这是 alert() 做不到的 缺点:记得要删除,否则在低版本 ...
- WinForm下的键盘事件(KeyPress、KeyDown)及如何处理不响应键盘事件
KeyDown事件用来处理功能键:F1 F2 F3... keyPress事件用来处理字符比如说:A B C... 1 2 3... 注:处理该事件时,需要先将窗体的 KeyPreview=true; ...
- ToString(“N2”)和ToString(“0.00”)之间的区别
看来N会包含数千个分隔符,而0.00则不会. N2将以500.00的方式工作,但是当您有5000.00时,N2将显示为 5,000.00 代替 5000.00 If you do this inste ...