C++双目运算符+=的重载详解

 更新时间:2021年09月16日 15:00:58   作者:C++双目运算符+=的重载  
这篇文章主要介绍了详解C++编程中的双目运算符重载,是C++入门学习中的基础知识,需要的朋友可以参考下,希望能够给你带来帮助

1、+=重载

class Complex
{
public:
	Complex(int a, int b)
		: _a(a)
		, _b(b)
	{}
	Complex& operator+= (Complex& other)
	{
		this->_a += other._a;
		this->_b += other._b;
		return *this;
	}
	void print()
	{
		cout << _a << endl;
		cout << _b << endl;
	}
private:
	int _a;
	int _b;
};
void TestLei()
{
	int a = 10, b = 20, c = 30;
	Complex c1(10, 20);
	Complex c2(20, 30);
	Complex c3(30, 40);
	c1 += c2 += c3;
	c1.print();
}

在这里插入图片描述

2、friend重载+=

class Complex
{
public:
	Complex(int a, int b)
		: _a(a)
		, _b(b)
	{}
	friend Complex& operator+= (Complex& c1, Complex& c2)
	{
		c1._a += c2._a;
		c1._b += c2._b;
		return c1;
	}
	void print()
	{
		cout << _a << endl;
		cout << _b << endl;
	}
private:
	int _a;
	int _b;
};
void TestFriend()
{
	int a = 10, b = 20, c = 30;
	Complex c1(10, 20);
	Complex c2(20, 30);
	Complex c3(30, 40);
	c1 += c2 += c3;
	c1.print();
}

在这里插入图片描述

3、运算符

3.1 单目运算符

单目运算符是指运算所需变量为一个的运算符。

逻辑非运算符【!】、按位取反运算符【~】、自增自减运算符【++,–】、负号运算符【-】

类型转换运算符【(类型)】、指针运算符和取地址运算符【*和&】、长度运算符【sizeof】

3.2 双目运算符

双目运算符就是对两个变量进行操作。

初等运算符

下标运算符【[]】、分量运算符的指向结构体成员运算符【->】、结构体成员运算符【.】 算术运算符
乘法运算符【*】、除法运算符【/】、取余运算符【%】 、加法运算符【+】、减法运算符【-】

关系运算符

等于运算符【==】、不等于运算符【!=】 、关系运算符【< > <=> = 】
逻辑与运算符【&&】、逻辑或运算符【||】、逻辑非运算符【!】

位运算符

按位与运算符【&】、按位异或运算符【^】 、按位或运算符【|】、左移动运算符【<<】、右移动运算符【>>】

赋值运算符 赋值运算符【= += -= *= /= %= >>= <<= &= |= ^=】 逗号运算符 【,】

3.3 三目运算符

对三个变量进行操作;

b ? x : y

4、重载++和重载- -

class Test
{
public:
	Test(int t = 0)
		:_t(t)
	{}
	Test& operator++() // 前置++
	{
		++_t;
		return *this;
	}
	Test operator++(int)// 后置++
	{
		Test temp = *this; 
		++_t;
		return temp;
	}
	Test& operator--()// 前置--
	{
		--_t;
		return *this;
	}
	Test operator--(int)// 后置--
	{
		Test temp = *this;
		--_t;
		return temp;
	}
	int Result()
	{
		return _t;
	}
private:
	int _t;
};

总结

本篇文章就到这里了,希望能够给你带来帮助,也希望您能够多多关注脚本之家的更多内容!

相关文章

  • C++ 智能指针代码解析

    C++ 智能指针代码解析

    这篇文章主要介绍了c++ 智能指针基础的相关资料,帮助大家更好的理解和学习使用c++,感兴趣的朋友可以了解下,希望能给你带来帮助
    2021-10-10
  • C语言实现简单通讯录系统

    C语言实现简单通讯录系统

    这篇文章主要为大家详细介绍了C语言实现简单通讯录系统,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2021-07-07
  • 使用mmap实现多进程对大文件拷贝

    使用mmap实现多进程对大文件拷贝

    这篇文章主要介绍了使用mmap实现多进程对大文件拷贝,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2019-10-10
  • 利用C++ OpenCV 实现从投影图像恢复仿射特性

    利用C++ OpenCV 实现从投影图像恢复仿射特性

    我们通过相机拍摄的图片存在各种畸变,其中投影畸变使得原本平行的直线不再平行,就会产生照片中近大远小的效果。本文将具体介绍如何利用OPenCV实现从投影图像恢复仿射特性,接下来跟着小编一起学习吧
    2021-11-11
  • C/C++使用Zlib实现文件的压缩与解压

    C/C++使用Zlib实现文件的压缩与解压

    zlib 是一个开源的数据压缩库,旨在提供高效、轻量级的压缩和解压缩算法,本文将介绍如何使用 zlib 库进行数据的压缩和解压缩,以及如何保存和读取压缩后的文件,感兴趣的可以了解下
    2023-11-11
  • 深入理解C语言的new[]和delete[]

    深入理解C语言的new[]和delete[]

    new和delete既是C++中的关键字也是一种特殊的运算符。这篇文章主要介绍了C++的new和delete详解,需要的朋友可以参考下
    2021-09-09
  • C++实现寻找最低公共父节点的方法

    C++实现寻找最低公共父节点的方法

    这篇文章主要介绍了C++实现寻找最低公共父节点的方法,是数据结构中二叉树的一个经典算法,有一定的借鉴价值,需要的朋友可以参考下
    2014-09-09
  • C++ 中滚动条的滚动问题

    C++ 中滚动条的滚动问题

    本文主要通过一个示例,给大家介绍了C++中滚动条的滚动问题,以及相关参数的解释,非常的详细,有需要的小伙伴可以参考下。
    2015-06-06
  • C 语言插入排序算法及实例代码

    C 语言插入排序算法及实例代码

    本文主要介绍C语言插入排序,这里给大家详细介绍插入排序的思想并举例说明,还有实现代码,有需要的朋友可以参考下
    2016-07-07
  • 详解C语言中的符号常量、变量与算术表达式

    详解C语言中的符号常量、变量与算术表达式

    这篇文章主要介绍了C语言中的符号常量、变量与算术表达式,是C语言入门学习中的基础知识,需要的朋友可以参考下
    2015-11-11

最新评论