#include <iostream>

// overloading "operator ++ " inside class
// ++ 是一元操作符 ////////////////////////////////////////////////////////// class Rectangle
{
public:
Rectangle(int w, int h)
: width(w), height(h)
{}; ~Rectangle() {}; Rectangle& operator++ (); // ++i
Rectangle operator++ (int); // i++ public:
int width;
int height;
}; ////////////////////////////////////////////////////////// Rectangle &
Rectangle::operator++ ()
{
this->height++;
this->width++;
return *this;
} // 返回类型不能是引用。为了使 i++ 的效果和默认类型一致
Rectangle
Rectangle::operator++ (int)
{
Rectangle b(*this);
++(*this);
return b;
} ////////////////////////////////////////////////////////// std::ostream&
operator<< (std::ostream& os, const Rectangle& rec)
{
os << rec.width << ", " << rec.height;
return os; } ////////////////////////////////////////////////////////// int main()
{
Rectangle a(40, 10);
Rectangle b = (a++);
std::cout
<< "a = " << a << std::endl // 输出 41, 11
<< "b = " << b << std::endl // 输出 40, 10
;
Rectangle c = (++a); std::cout
<< "a = " << a << std::endl // 输出 42, 12
<< "b = " << b << std::endl // 输出 40, 10
<< "c = " << c << std::endl // 输出 42, 12
; std::cout
<< "a = " << a << std::endl // 输出 43, 13
<< "a = " << ++a << std::endl // 输出 43, 13
; std::cout
<< "a = " << (a++) << std::endl // 输出 43, 13
; // C++ 自带的 ++ 作用结果 {
int vint = 0;
std::cout
<< "v = " << vint << std::endl; // 输出 0
std::cout
<< "v = " << vint << std::endl // 输出 1
<< "v = " << vint++ << std::endl; // 输出 1
} {
int vint = 0;
std::cout
<< "v = " << vint << std::endl; // 输出 0
std::cout
<< "v = " << vint << std::endl // 输出 1
<< "v = " << ++vint << std::endl; // 输出 1
} return 0;
}

 

++i,应该是先自加一,返回自身(已经加1之后的自身);

i++,应该是先拷贝自身,再自加一,返回自身的拷贝(自己已经加1,但是拷贝没有)。

 

C++ class内的 ++ 重载,左++,右++,重载示例。的更多相关文章

  1. mysql--创建表,插入数据,修改表名,删除表,简单查询/内连接、左/右连接

    创建表mm:  其中id为主键且自增长 ) primary key not null unique auto_increment, name ) not null, age ), class ) no ...

  2. 位运算+引用+const+new/delete+内联函数、函数重载、函数缺省参数

    update 2014-05-17 一.位运算 应用: 1.判断某一位是否为1 2.只改变其中某一位,而保持其它位都不变 位运算操作: 1.& 按位与(双目): 将某变量中的某些位(与0位与) ...

  3. 【转】mysql数据库中实现内连接、左连接、右连接

    [转]mysql数据库中实现内连接.左连接.右连接 内连接:把两个表中数据对应的数据查出来 外连接:以某个表为基础把对应数据查出来 首先创建数据库中的表,数据库代码如下: /* Navicat MyS ...

  4. MySQL内连接,左(外)连接,右(外)连接

    用两个表(a_table.b_table),关联字段a_table.a_id和b_table.b_id来演示一下MySQL的内连接.外连接( 左(外)连接.右(外)连接.全(外)连接). MySQL版 ...

  5. mysql之索引 应用于事物 内连接、左(外)连接、右(外)连接

    什么是索引 索引就像是一本书的目录一样,能够快速找到所需要的内容 索引的作用 加快查询速率,降低IO成本加快表与表之间的连接,减少分组和排序时间 索引类型 普通索引:没有唯一性的基本索引 唯一索引:有 ...

  6. 细说MySQL连接查询:内连、左连和右连

    转: 细说MySQL连接查询:内连.左连和右连 简介: MySQL 的连接查询,通常都是将来自两个或多个表的行结合起来,基于这些表之间的共同字段,进行数据的拼接.首先,要确定一个主表作为结果集,然后将 ...

  7. C++基础 学习笔记五:重载之运算符重载

    C++基础 学习笔记五:重载之运算符重载 什么是运算符重载 用同一个运算符完成不同的功能即同一个运算符可以有不同的功能的方法叫做运算符重载.运算符重载是静态多态性的体现. 运算符重载的规则 重载公式 ...

  8. C++ 重载运算符和重载函数

    C++ 重载运算符和重载函数 C++ 允许在同一作用域中的某个函数和运算符指定多个定义,分别称为函数重载和运算符重载. 重载声明是指一个与之前已经在该作用域内声明过的函数或方法具有相同名称的声明,但是 ...

  9. C++解析七-重载运算符和重载函数

    重载运算符和重载函数C++ 允许在同一作用域中的某个函数和运算符指定多个定义,分别称为函数重载和运算符重载.重载声明是指一个与之前已经在该作用域内声明过的函数或方法具有相同名称的声明,但是它们的参数列 ...

  10. C++第五次作业--运算符重载和函数重载

    C++ 运算符重载和函数重载 C++ 允许在同一作用域中的某个函数和运算符指定多个定义,分别称为函数重载和运算符重载. 重载声明是指一个与之前已经在该作用域内声明过的函数或方法具有相同名称的声明,但是 ...

随机推荐

  1. Fiddler应用——Fiddler过滤功能

    Fiddler的过滤功能在Fiddler右面板处,点击Filters显示如图所示面板. 如图所示,Fiddler的过滤面板主要分为几个部分: 1.Use Filters:是否启用过滤器 2.Actio ...

  2. いくnotepad++

    再见!Notepad++,好走不送! 1No zuo No Die 上周就发现Notepad++开发者在作妖,新版本放了个啥恶心的标注上来,本来想直接发文说一说,后来想想是不是这样又给它做了宣传,就决 ...

  3. 201871010121-王方《面向对象程序设计(Java)》第一周学习总结

    项目 内容 这个作业属于哪个课程 https://www.cnblogs.com/nwnu-daizh/ 这个作业的要求在哪里 https://www.cnblogs.com/wf-001128/ 作 ...

  4. 洛谷 P5639 【CSGRound2】守序者的尊严

    洛谷 P5639 [CSGRound2]守序者的尊严 洛谷传送门 题目背景 由于Y校最近进行了对学校食堂的全面改革与对小卖部的全面整治(乱搞),导致学校小卖部卖的零食被禁售了:学校食堂的炸鸡窗口也消失 ...

  5. python奇闻杂技

    第一天 01 从计算机到程序设计语言 02 python环境配置 03 实例一:温度转换 04 python语法分析 第二天 01 深入理解python语言 02 实例二,python蟒蛇配置 03 ...

  6. Paper | Residual Attention Network for Image Classification

    目录 1. 相关工作 2. Residual Attention Network 2.1 Attention残差学习 2.2 自上而下和自下而上 2.3 正则化Attention 最近看了些关于att ...

  7. C#开发BIMFACE系列26 服务端API之获取模型数据11:获取单个面积分区信息

    系列目录     [已更新最新开发文章,点击查看详细] 在<C#开发BIMFACE系列25 服务端API之获取模型数据9:获取楼层对应面积分区列表>一文中介绍了如何获取单个模型中单个楼层包 ...

  8. c# winform 窗体失去焦点关闭(钩子实现)

    先来一个辅助类 using System; using System.Collections.Generic; using System.Linq; using System.Runtime.Inte ...

  9. ABAP 新语法记录(一)

    原文链接:https://www.cnblogs.com/learnning/p/10647174.html 主要内容 内联声明 构造表达式 内表操作 Open SQL 其他 本文列出了ABAP新语法 ...

  10. numpy 和 tensorflow 中的各种乘法(点乘和矩阵乘)

    点乘和矩阵乘的区别: 1)点乘(即" * ") ---- 各个矩阵对应元素做乘法 若 w 为 m*1 的矩阵,x 为 m*n 的矩阵,那么通过点乘结果就会得到一个 m*n 的矩阵. ...