广告
返回顶部
首页 > 资讯 > 后端开发 > 其他教程 >一篇文章带你了解c++运算符重载
  • 759
分享到

一篇文章带你了解c++运算符重载

2024-04-02 19:04:59 759人浏览 安东尼
摘要

目录友元函数重载:复合赋值Operator pairings自增自减运算符的重载c++20,spaceship operator总结友元函数 一种全局函数,可以在类里声明,其他地方定

友元函数

一种全局函数,可以在类里声明,其他地方定义。或者在类里定义生命。

但是这个友元函数,不是类的成员。用的时候直接用,但是可以接触类的所有权限的变量。

对于,重载操作符来说,可以把一些重载体函数定义为友元函数。

具体来说,如果进行运算的这两个类,是对等的,没有修改任一个的值,那么,建议用友元。

如果,类似=,是赋值,对左边的变量做修改了。那么这时候应该重载为成员函数。

在这里插入图片描述

重载:复合赋值

在这里插入图片描述

Operator pairings

许多操作符是成对的,重载其中一个的时候,另一个相对应的也应该重载。

在这里插入图片描述

自增自减运算符的重载

对于a++和++a,这两个运算符哪个在前,哪个后。函数是不一样的

c++20,spaceship operator

就是只需要重载一个,其他的就都能重载了。


#include <compare>
// return type deduced as std::strong_ordering
friend auto operator<=>(point p1, point p2) = default;
int x_;
int y_;
1
#include <iOStream> 2
3
class point { 4
public: 5
point(int x, int y) 6
: x_{x} 7
, y_{y} {} 8
9
// hidden friend - preferred 10
11
12
13
private: 14
15
16
}; 17
18
auto main() -> int { 19
auto const p2 = point{1, 2}; 20
auto const p1 = point{1, 2}; 21
std::cout << "p1 == p2 " << (p1 == p2) << '\n'; 22
std::cout << "p1 != p2 " << (p1 != p2) << '\n'; 23
std::cout << "p1 < p2 " << (p1 < p2) << '\n'; 24
std::cout << "p1 > p2 " << (p1 > p2) << '\n'; 25
std::cout << "p1 <= p2 " << (p1 <= p2) << '\n'; 26
std::cout << "p1 >= p2 " << (p1 >= p2) << '\n'; 27
} 

总结

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

--结束END--

本文标题: 一篇文章带你了解c++运算符重载

本文链接: https://www.lsjlt.com/news/132613.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • 一篇文章带你了解c++运算符重载
    目录友元函数重载:复合赋值Operator pairings自增自减运算符的重载c++20,spaceship operator总结友元函数 一种全局函数,可以在类里声明,其他地方定...
    99+
    2022-11-12
  • 一篇文章带你入门Java运算符
    目录算数运算符(Arithmetic operator)关系运算符(Relational operator)逻辑运算符(Logical operator)赋值运算符(Assignme...
    99+
    2022-11-12
  • 一篇文章带你了解C++的KMP算法
    目录KMP算法步骤1:先计算子串中的前后缀数组NextC++代码:步骤2:查找子串在母串中出现的位置。总结KMP算法 KMP算法作用:字符串匹配 例如母串S = “aaagoogle...
    99+
    2022-11-12
  • 一篇文章带你了解C语言操作符
    目录一、操作符分类 二、算术操作符三、移位操作符1、左移操作符 2、右移操作符2.1算术移位 2.2逻辑移位 四、位操作符 1、按位...
    99+
    2022-11-12
  • 一篇文章带你了解XGBoost算法
    目录1. 什么是XGBoost1.1 XGBoost树的定义1.2 正则项:树的复杂度1.3 树该怎么长1.4 如何停止树的循环生成2. XGBoost与GBDT有什么不同3. 为什...
    99+
    2022-11-12
  • 一篇文章带你了解论C语言中算法的重要性
    目录一、问题一(打印阶乘)问题描述:问题分析:解决方案:1.让我们检查一下结果,发现问题很有可能是循环的时候没有循环本身2.这里要引入C++中STL库的一个知识点二、问题二(比较多项...
    99+
    2022-11-12
  • 一篇文章带你了解C++语法基础--字符串
    目录总结字符与整数的关联在于ASCII码:每一个常用字符都对应一个-128 ~ 127 的数字,二者之间是可以进行相互转换的: #include <iostream>...
    99+
    2022-11-12
  • 一篇文章带你了解C++(STL基础、Vector)
    目录STL基本概念STL六大组件STL中容器、算法、迭代器容器算法迭代器初识Vector容器Vector三大遍历算法Vector存放其他数据类型 Vector容器嵌套总结S...
    99+
    2022-11-12
  • 一篇文章带你了解C++中的异常
    目录异常抛出异常基本操作自定义的异常类栈解旋异常接口声明异常变量的生命周期异常的多态c++的标准异常库编写自己的异常类总结异常 在c语言中,对错误的处理总是两种方法: 1,使用整型的...
    99+
    2022-11-13
  • 一篇文章带你了解C/C++的回调函数
    目录函数指针概念先来看一个Hello World程序然后,采用函数调用的形式来实现用函数指针的方式来实现函数指针数组回调函数概念标准Hello World程序将它修改成函数回调样式修...
    99+
    2022-11-13
  • 一篇文章带你深入了解Java类加载
    目录1.类加载<1>.父子类执行的顺序<2>类加载的时机<3>类的生命周期<4>类加载的过程<5>类加载器1.启动类加载器...
    99+
    2022-11-12
  • 一篇文章带你了解C++智能指针详解
    目录为什么要有智能指针?智能指针的使用及原理RALLshared_ptr的使用注意事项创建多个 shared_ptr 不能拥有同一个对象shared_ptr 的销毁shared_pt...
    99+
    2022-11-12
  • 一篇文章带你了解C++模板编程详解
    目录模板初阶泛型编程函数模板函数模板概念函数模板格式函数模板的原理函数模板的实例化模板参数的匹配原则类模板类模板的定义格式类模板的实例化总结模板初阶 泛型编程 在计算机程序设计领域...
    99+
    2022-11-12
  • 一篇文章带你了解C语言函数的可重入性
    目录一、不可重入函数。二、可重入函数。三、如何写出可重入的函数四、函数的可重入性和线程安全的关系五、malloc和printf为什么不可重入总结一、不可重入函数。 在函数中如果我们使...
    99+
    2022-11-12
  • 一篇文章让你弄懂Java运算符
    目录1. 运算符是什么1.1 定义:1.2 常见运算符的概述1.3 表达式1.3.1 定义1.3.2 表达式的类型2. 算数运算符2.1 分类:2.2 基本四则运算符:加减乘除模(+...
    99+
    2022-11-13
  • 一篇文章带你了解初始Spring
    目录为什么要使用SpringSpring概述Spring容器使用流程1.启动容器2.完成bean的初始化3.注册bean到容器中4.装配bean的属性bean的注册bean属性注入总...
    99+
    2022-11-12
  • 一篇文章带你了解Java SpringBoot Nacos
    目录1、什么是Nacos 1.1与eureka对比1.2与zookeeper对比1.3与springcloud config 对比 2、Spring Cloud Alibaba 套件...
    99+
    2022-11-12
  • 一篇文章带你了解Java Stream流
    目录一、Stream流引入现有一个需求:1.用常规方法解决需求2.用Stream流操作集合,获取流,过滤操作,打印输出二、Stream流的格式三、获取流四、Stream流的常用方法方...
    99+
    2022-11-12
  • 一篇文章带你了解JavaScript-对象
    目录创建对象对象直接量通过new创建对象原型Object.create()属性的查询和设置继承属性访问错误删除属性检测属性序列化对象总结创建对象 对象直接量 对象直接量是由若干名/值...
    99+
    2022-11-12
  • 一篇文章带你了解JavaScript-语句
    目录表达式语句复合语句和空语句复合语句空语句声明语句varfunction条件语句ifif/elseelse ifswitch循环whiledo/whileforfor/in跳转标签...
    99+
    2022-11-12
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作