关于c++中前++后++运算符重载问题
#include<iostream>
using namespace std; class Complex{
public:
Complex(int a,int b){
this->a=a;
this->b=b;
} void printComplex(){
cout<<"("<<this->a<<","<<this->b<<"i)"<<endl;
}
friend Complex& operator++(Complex& c);/*友元函数声明*/
friend const Complex operator++(Complex& c,int);
/*
局部中的重载前++运算符
Complex& operator++(){
this->a++;
this->b++; return *this;
}
*/
/*
局部中的重载后++运算符
const Complex operator++(int){//亚元(即占位符,坑啊~~~)
Complex temp(this->a,this->b);
this->a++;
this->b++; return temp;
}
*/
private:
int a;
int b;
}; /*重载前++运算符*/
Complex& operator++(Complex& c){
c.a++;
c.b++;
return c;
}
/*重载后++运算符,后++不可以多次进行*/
const Complex operator++(Complex& c,int){//int 为占位符
Complex temp(c.a,c.b);
c.a++;
c.b++; return temp;
} int main(){
Complex c1(,);
++++c1;//可以多次进行前置++
c1.printComplex();
c1++;
c1.printComplex(); return ;
}
关于c++中前++后++运算符重载问题的更多相关文章
- C++之运算符重载(前置++和后置++)
今天在阅读<google c++ 编程风格>的文档的时候,5.10. 前置自增和自减:有一句话引起了我的注意: 对于迭代器和其他模板对象使用前缀形式 (++i) 的自增, 自减运算符.,理 ...
- # c++运算符重载之 前置++, 后置++, 负号运算符, 类型转换函数, 以及输入输出运算符
c++运算符重载之 前置++, 后置++, 负号运算符, 类型转换函数, 以及输入输出运算符 标签(空格分隔): c++ 前言 我在c++学习的过程中, 对这几个不太常见的运算符重载不太会写.出现了很 ...
- C++运算符重载
C++运算符重载 基本知识 重载的运算符是具有特殊名字的函数,他们的名字由关键字operator和其后要定义的运算符号共同组成. 运算符可以重载为成员函数和非成员函数.当一个重载的运算符是成员函数时, ...
- PoEduo - C++阶段班【Po学校】-Lesson03-5_运算符重载- 第7天
PoEduo - Lesson03-5_运算符重载- 第7天 复习前面的知识点 空类会自动生成哪些默认函数 6个默认函数 1 构造 2 析构 3 赋值 4 拷贝构造 5 oper ...
- 不可或缺 Windows Native (24) - C++: 运算符重载, 自定义类型转换
[源码下载] 不可或缺 Windows Native (24) - C++: 运算符重载, 自定义类型转换 作者:webabcd 介绍不可或缺 Windows Native 之 C++ 运算符重载 自 ...
- 我的c++学习(8)运算符重载和友元
运算符的重载,实际是一种特殊的函数重载,必须定义一个函数,并告诉C++编译器,当遇到该运算符时就调用此函数来行使运算符功能.这个函数叫做运算符重载函数(常为类的成员函数). 方法与解释 ◆ 1.定义运 ...
- c/c++面试题(6)运算符重载详解
1.操作符函数: 在特定条件下,编译器有能力把一个由操作数和操作符共同组成的表达式,解释为对 一个全局或成员函数的调用,该全局或成员函数被称为操作符函数.该全局或成员函数 被称为操作符函数.通过定义操 ...
- C++中的运算符重载
首先思考以下几个问题: 1.什么是运算符重载? 2.为什么要重载运算符,它有什么用? 3.可以重载哪些运算符? 4.重载运算符有哪些规则? 一.基本概念 我们在程序中使用各种操作符,比如加(+).赋值 ...
- 【C++】运算符重载
运算符重载,主要是简化类类型运算,能够让我们对类对象直接用运算符进行运算.基本语法: 类型 operator 运算符(参数列表){ ... } Complex operator+(Complex va ...
随机推荐
- too much recursion(太多递归)Uncaught RangeError: Maximum call stack size exceeded BootstrapValidator报错
在BootstrapValidator中已默认遵守Bootstrap规则,form里的每个输入项目必需包含在类为form-group的标签里,否则BootstrapValidator中定义的field ...
- MYSQL的联合查询最好是少用,效能差异巨大
同样的功能,不同的写法,时间和内存占用差了几千倍,不废话,直接上代码 第一种写法: 代码如下: $Rs=DB::get($_ENV['DB'],3,"SELECT * FROM _xiazh ...
- linux中查看软件文件安装路径
在linux中文件与软件一般都是安装在到/usr/share和/usr/local中了,如果我们需要查看软件安装路径linux为我们提供了查看命令,whereis 就可以帮我查找文件安装路径在哪里了 ...
- 分布式环境中,模块数据交互协议分析 (百度brpc)
1. 背景 之前听到同事说,要为自己的模块考虑写个数据协议.今天有空想了一下.写出来,方便后续使用. 开源代码brpc中可以支持多种协议,nshead.redis.mongo等20多种协议. 2. 什 ...
- 微信小程序生成指定页面小程序码海报图片分享思路总结
本博客主要说下思路,具体代码不贴 1.考虑到组件复用,所以我把它做成一个自定义的组件 <my-poster id="getPoster" avater="{{ima ...
- IDEA调试SpringMvc项目时,出错:java.lang.ClassNotFoundException: org.springframework.web.context.ContextLoaderListener,解决办法
具体报错信息如下图所示: 解决方法:File > Project Structure > Artifacts > 在右侧Output Layout右击项目名,选择Put into O ...
- 转:C# Delegate委托 1
Delegate中文翻译为“委托”.MSDN中对Delegate的解释如下: C#中的委托类似于C或C++中的函数指针.使用委托使程序员可以将方法引用封装在委托对象内.然后可以将该委托对象传递给可调用 ...
- 【Linux】常见公共DNS地址
如果您是程序员.系统管理员或任何类型的 IT 工作者,那么您可能有自己最喜欢的用于故障排除的 IP 地址.而且你可能已经用了好几年了. 这些 ip 可用于: ping 测试连接 使用 dig 或 ns ...
- Android ANR的产生与分析
ANR即Application Not Responding应用无响应,一般在ANR的时候会弹出一个应用无响应对话框.也许有些开发者在使用某些手机开发中不在弹出应用无响应弹出框,特别是国产手机An ...
- python3 --- locale命名空间让程序更加安全了
[简介] 由于python-2.x 并没有locale这个层次的命名空间,所以临时变量有可能会泄漏,进而影响到了包涵它的命名空间 [看一下pyhont-2.x是怎么泄漏临时变量的] python Py ...