重载一元运算符
自增++运算符
#include<iostream>
using namespace std;
class CGirl
{
public:string name;int ranking;CGirl() { name = "zhongge"; ranking = 5; }void show() const{ cout << "name : "<<name << " , ranking : " << ranking; }};
int main() {CGirl g1;g1.show();return 0;
}
现在我们重载一个++运算符
#include<iostream>
using namespace std;
class CGirl
{
public:string name;int ranking;CGirl() { name = "zhongge"; ranking = 5; }void show() const{ cout << "name : "<<name << " , ranking : " << ranking; }void operator++() {ranking++;}};
int main() {CGirl g1;++g1;g1.show();return 0;
}
main函数里的g1++不行但是++g1就行了;
然而你++(++g)不行,你让你重载函数返回对象的引用就可以了;
#include<iostream>
using namespace std;
class CGirl
{
public:string name;int ranking;CGirl() { name = "zhongge"; ranking = 5; }void show() const{ cout << "name : "<<name << " , ranking : " << ranking; }CGirl & operator++() {ranking++;return *this;}};
int main() {CGirl g1;++(++g1);g1.show();return 0;
}
上面这是自增运算符的前置,我们再来个后置的;
c++规定重载自增&自减运算符,如果重载函数有一个int形参,编译器处理后置表达式时将调用这个重载函数。
#include<iostream>
using namespace std;
class CGirl
{
public:string name;int ranking;CGirl() { name = "zhongge"; ranking = 5; }void show() const{ cout << "name : "<<name << " , ranking : " << ranking; }CGirl & operator++(int ) {ranking++;return *this;}};
int main() {CGirl g1;g1++;g1.show();return 0;
}
这样就ok了;
-----------------------------------------------------------------------------------------------------------------------
整数的话不可以后自增嵌套,前自增嵌套可以;

#include<iostream>
using namespace std;
class CGirl
{
public:string name;int ranking;CGirl() { name = "zhongge"; ranking = 5; }void show() const{ cout << "name : "<<name << " , ranking : " << ranking; }CGirl& operator++(int ) {ranking++;return *this;}};
int main() {CGirl g1,g2;g2=g1++;g2.show();g1.show();return 0;
}
name : zhongge , ranking : 6name : zhongge , ranking : 6
C:\Users\33007\source\repos\ConsoleApplication8\x64\Debug\ConsoleApplication8.exe (进程 9820)已退出,代码为 0。
按任意键关闭此窗口. . .
显然你g1++是后来加,g2应该是g1之前的值而不是增后的值。
所以改一下后++的代码;
CGirl operator++(int ) {CGirl tmp = *this;ranking++;return tmp;
}
函数的返回值不能是引用,成员函数的临时对象不能引用;
name : zhongge , ranking : 5name : zhongge , ranking : 6
C:\Users\33007\source\repos\ConsoleApplication8\x64\Debug\ConsoleApplication8.exe (进程 15512)已退出,代码为 0。
按任意键关闭此窗口. . .
这样功能就对上了;
相关文章:
重载一元运算符
自增运算符 #include<iostream> using namespace std; class CGirl { public:string name;int ranking;CGirl() { name "zhongge"; ranking 5; }void show() const{ cout << "name : "<<name << " , ranking : " <…...
10元 DIY 一个柔性灯丝氛围灯
之前TikTok上特别火的线性氛围灯Augelight刚出来的时候一度卖到80多美金,国内1688也能到400多人民币。 随着各路国内厂商和DIY创客的跟进,功能变多的同时价格一路下滑,虽然有的质感的确感人,但是便宜啊。 甚至关注的up有把成本搞到…...
表单自定义组件 - 可选择卡片SelectCard
import React from react; import styles from ./index.module.less;type OptionsType {/*** 每个item渲染一行,第0项为标题*/labels?: any[];/*** 自定义渲染内容*/label?: string | React.ReactNode;value: any; }; interface IProps {value?: any;onChange?…...
Ubuntu / Debian安装FTP服务
本章教程,记录在Ubuntu中安装FTP服务的具体步骤。FTP默认端口:21 1、安装 pure-ftpd sudo apt-get install pure-ftpd2、修改默认配置 # 与 centos 不同,这里需要在 /etc/pure-ftpd/conf 文件夹下执行下列命令,增加对应配置文件: # 创建 /etc/pure-ftpd/conf/PureDB 文件…...
若依 Vue 前端分离 3.8.8 版中生成的前端代码中关于下拉框只有下拉箭头的问题
生成代码修改前 <el-form-item label"课程学科" prop"subject"><el-select v-model"queryParams.subject" placeholder"请选择课程学科" clearable><el-optionv-for"dict in course_subject":key"dict…...
C++把一个类封装成动态链接库
一、步骤 1. 创建类头文件 首先,定义你要封装的类。例如,创建一个名为MyClass的类: // MyClass.h #pragma once#ifdef MYCLASS_EXPORTS #define MYCLASS_API __declspec(dllexport) #else #define MYCLASS_API __declspec(dllimport) #end…...
每天一个项目管理概念之项目章程
项目管理中,项目章程扮演着至关重要的角色。它是项目正式启动的标志,为项目的执行提供法律和组织上的认可。项目章程是项目管理知识体系(PMBOK)中定义的关键文档之一,对于确保项目的顺利进行具有决定性的影响。 定义与…...
c++11新特性-4-返回类型后置
文章目录 返回类型后置1.基本语法 返回类型后置 1.基本语法 auto func(参数1,参数2,参数3,...)->decltype(参数表达式) {...... }例如: template<typename T,typename U> auto add(T t,U u)->decltype(t u) {retu…...
Linux-C语言实现一个进度条小项目
如何在linux中用C语言写一个项目来实现进度条?(如下图所示) 我们知道\r是回车,\n是换行(且会刷新) 我们可以用 \r 将光标移回行首,重新打印一样格式的内容,覆盖旧的内容,…...
vue使用glide.js实现轮播图(可直接复制使用)
效果图 可以实现自动轮播,3种切换方式:直接滑动图片、点击两侧按钮、点击底部按钮 体验链接:http://website.livequeen.top 实现 一、引入依赖 1、控制台引入依赖 npm install glidejs/glide 2、在css中引用 <style scoped> import glidejs/g…...
TK养号工具开发会用上的源代码科普!
在当今数字化时代,社交媒体平台的崛起使得网络账号的维护与管理变得日益重要,其中,TK作为一款备受欢迎的社交媒体平台,吸引了大量用户。 在TK上进行账号养护,即通过各种方式提升账号权重、增加曝光量,已成…...
信创-办公软件应用工程师认证
随着国家对信息技术自主创新的战略重视程度不断提升,信创产业迎来前所未有的发展机遇。未来几年内,信创产业将呈现市场规模扩大、技术创新加速、产业链完善和国产化替代加速的趋势。信创人才培养对于推动产业发展具有重要意义。应加强高校教育、建立人才…...
数组操作forEach和map
forEach和map的相同点 1、都是循环遍历数组中的每一项 2、入参匿名函数都支持三个参数,当前项item,当前项索引index,原始数组arr;匿名函数中的this都指向window 3、都可以通过return跳过本次循环 4、都无法通过使用 break 语句来中…...
流式处理应用场景与流式计算处理框架选择建议
文章目录 前言使用场景如何选择流式处理框架 前言 在之前的文章中我们介绍了如何进行流式处理——从一般性的概念和模式说起,并列举了一些Streams的例子: 流式处理相关概念总结说明流式处理设计模式总结说明Kafka Streams 架构概览 接下来的文章将介绍…...
2024年软件测试岗必问的100+个面试题【含答案】
一、基础理论 1、开场介绍 介绍要领:个人基本信息、工作经历、之前所做过的工作及个人专长或者技能优势。扬长避短,一定要口语化,语速适中。沟通好的就多说几句,沟通不好的话就尽量少说两句。举例如下: 面试官你好&…...
A4-C四驱高防轮式巡检机器人
在当今数字化和智能化迅速发展的时代,旗晟智能带来了一款革命性的创新产品——A4-C四驱高防轮式巡检机器人。这款机器人以其卓越的性能和多功能性,为工业巡检领域带来了全新的解决方案。 一、产品亮点 1、四驱动力与高防护设计 四驱高防轮式巡检机器人…...
Https网站如何申请免费的SSL证书及操作使用指南
前言 在当今互联网环境下,HTTPS已成为网站安全的标配,它通过SSL/TLS协议为网站数据传输提供加密,保障用户信息的安全。申请并部署免费SSL证书,不仅能够提升网站的专业形象,还能增强用户信任。本文将详细介绍如何在知名…...
实现资产优化管理:智慧校园资产分类功能解析
在构建智慧校园的过程中,细致入微的资产管理是确保教育资源高效运作的关键一环,而资产分类功能则扮演着举足轻重的角色。系统通过精心设计的分类体系,将校园内的各类资产,从昂贵的教学设备到日常使用的办公物资,乃至无…...
大厂开发必知必会:Devops、CI/CD、流水线和Paas的关系解析说明
为什么作为程序开发人员需要了解ci/cd流程和原理? 作为程序开发人员,了解CI/CD(持续集成/持续交付)的流程和原理具有以下几个重要的理由: 1. 提高代码质量和稳定性 自动化测试:CI/CD流程中集成了自动化测…...
Qt学习:Qt窗口组件以及窗口类型
一、Qt的窗口组件有哪些 Qt是一个跨平台的C应用程序开发框架,它的窗口组件,也称为用户界面元素,为开发者提供了丰富的可视化界面设计选项。在Qt中,窗口组件主要包括: 窗口(Window):…...
【Redis技术进阶之路】「原理分析系列开篇」分析客户端和服务端网络诵信交互实现(服务端执行命令请求的过程 - 初始化服务器)
服务端执行命令请求的过程 【专栏简介】【技术大纲】【专栏目标】【目标人群】1. Redis爱好者与社区成员2. 后端开发和系统架构师3. 计算机专业的本科生及研究生 初始化服务器1. 初始化服务器状态结构初始化RedisServer变量 2. 加载相关系统配置和用户配置参数定制化配置参数案…...
vue3+vite项目中使用.env文件环境变量方法
vue3vite项目中使用.env文件环境变量方法 .env文件作用命名规则常用的配置项示例使用方法注意事项在vite.config.js文件中读取环境变量方法 .env文件作用 .env 文件用于定义环境变量,这些变量可以在项目中通过 import.meta.env 进行访问。Vite 会自动加载这些环境变…...
vulnyx Blogger writeup
信息收集 arp-scan nmap 获取userFlag 上web看看 一个默认的页面,gobuster扫一下目录 可以看到扫出的目录中得到了一个有价值的目录/wordpress,说明目标所使用的cms是wordpress,访问http://192.168.43.213/wordpress/然后查看源码能看到 这…...
CSS | transition 和 transform的用处和区别
省流总结: transform用于变换/变形,transition是动画控制器 transform 用来对元素进行变形,常见的操作如下,它是立即生效的样式变形属性。 旋转 rotate(角度deg)、平移 translateX(像素px)、缩放 scale(倍数)、倾斜 skewX(角度…...
NPOI Excel用OLE对象的形式插入文件附件以及插入图片
static void Main(string[] args) {XlsWithObjData();Console.WriteLine("输出完成"); }static void XlsWithObjData() {// 创建工作簿和单元格,只有HSSFWorkbook,XSSFWorkbook不可以HSSFWorkbook workbook new HSSFWorkbook();HSSFSheet sheet (HSSFSheet)workboo…...
BLEU评分:机器翻译质量评估的黄金标准
BLEU评分:机器翻译质量评估的黄金标准 1. 引言 在自然语言处理(NLP)领域,衡量一个机器翻译模型的性能至关重要。BLEU (Bilingual Evaluation Understudy) 作为一种自动化评估指标,自2002年由IBM的Kishore Papineni等人提出以来,…...
Docker拉取MySQL后数据库连接失败的解决方案
在使用Docker部署MySQL时,拉取并启动容器后,有时可能会遇到数据库连接失败的问题。这种问题可能由多种原因导致,包括配置错误、网络设置问题、权限问题等。本文将分析可能的原因,并提供解决方案。 一、确认MySQL容器的运行状态 …...
ZYNQ学习记录FPGA(一)ZYNQ简介
一、知识准备 1.一些术语,缩写和概念: 1)ZYNQ全称:ZYNQ7000 All Pgrammable SoC 2)SoC:system on chips(片上系统),对比集成电路的SoB(system on board) 3)ARM:处理器…...
云安全与网络安全:核心区别与协同作用解析
在数字化转型的浪潮中,云安全与网络安全作为信息安全的两大支柱,常被混淆但本质不同。本文将从概念、责任分工、技术手段、威胁类型等维度深入解析两者的差异,并探讨它们的协同作用。 一、核心区别 定义与范围 网络安全:聚焦于保…...
python打卡第47天
昨天代码中注意力热图的部分顺移至今天 知识点回顾: 热力图 作业:对比不同卷积层热图可视化的结果 def visualize_attention_map(model, test_loader, device, class_names, num_samples3):"""可视化模型的注意力热力图,展示模…...
