cc22a_demo_c++重载自增自减操作符-代码示范
cc22a_demo_c++重载自增自减操作符-代码示范
#define _CRT_SECURE_NO_WARNINGS
#include <iostream>
using namespace std; class String
{
public:
String(char const *chars="");
String(String const &str);
~String();
void display() const;
String &operator++();//前加加 返回引用
String const operator++(int);//后加加,返回拷贝
String &operator--();
String const operator--(int);
private:
char *ptrChars;
};
String &String::operator++()
{
for (std::size_t i = ; i < std::strlen(ptrChars); ++i)
{
++ptrChars[i]; }
return *this;
}
String const String::operator++(int n) //int自动设置为0
{
String copy(*this);
++(*this);
return copy;
}
String::String(char const *chars)
{
chars = chars ? chars : "";
ptrChars = new char[std::strlen(chars)+];
std::strcpy(ptrChars,chars);
}
String::String(String const &str)
{
ptrChars = new char[std::strlen(str.ptrChars) + ];
std::strcpy(ptrChars,str.ptrChars);
}
String::~String()
{
delete[] ptrChars;
}
void String::display() const
{
cout << ptrChars << endl; }
int main()
{
int x = ;
x++;
++x;
//cout << x << endl; String s("ABC");
s.display();
++s;
s.display();
++s;
s.display();
cout << endl; String str1("ABC");
str1.display();
String str2(++str1);
str2.display();
String str3(str1++); str3.display();
str1.display();
// cout << "hello" << endl;
system("pause");
return ;
}
cc22a_demo_c++重载自增自减操作符-代码示范的更多相关文章
- C# 中重载自增自减操作符的具体运算原理 ----从C++程序员的角度看C#自增操作符重载的实质
看了看C#的运算符重载,发现与C++打不相同.刚刚被C#的自增操作符坑了,现在来分享一下. 先定义一个类 class A { public int i; public A(int I) { i = I ...
- C++ Primer 学习笔记_61_重载操作符与转换 --自增/自减操作符
重载操作符与转换 --自增/自减操作符 引言: 自增,自减操作符常常由诸如迭代器这种类实现,这种类提供相似于指针的行为来訪问序列中的元素.比如,能够定义一个类,该类指向一个数组并为该数组中的元素提供訪 ...
- C++学习笔记(5)----重载自增自减运算符
自增运算符“++”和自减运算符“--”分别包含两个版本.即运算符前置形式(如 ++x)和运算符后置形式(如 x++),这两者进行的操作是不一样的.因此,当我们在对这两个运算符进行重载时,就必须区分前置 ...
- Java基础知识——算术操作符、自增自减、关系操作符,你真的了解吗?
三人行,必有我师焉.欢迎大家加我的微信 yh18482155461,或扫描下方二维码,关注我的微信公众号,共同探讨Java相关技术问题. 温故知新 上一节我们讲到了Java中的赋值操作符,用案例的方式 ...
- 5.8 C++重载自增与自减操作符
参考:http://www.weixueyuan.net/view/6386.html 注意: 自增“++”与自减“--”都是一元操作符,其前置和后置两种形式都可以被重载. 前置 stopwatch ...
- Java自增和自减操作符——++/--的那些事
1. 概述 自增操作符(++)和自减操作符(--)是对变量进行加1和减1的操作. 2.分类说明 ++和--是对变量进行自增1和自减1的简写操作符.许多编程任务中经常需要对变量加1或者减1,所以采用这两 ...
- C++ 类型转化(运算符重载函数)和基本运算符重载(自增自减)
类型转化(运算符重载函数) 用转换构造函数可以将一个指定类型的数据转换为类的对象.但是不能反过来将一个类的对象转换为一个其他类型的数据(例如将一个Complex类对象转换成double类型数据).在C ...
- 【转】 C语言自增自减运算符深入剖析
转自:http://bbs.csdn.net/topics/330189207 C语言的自增++,自减--运算符对于初学者来说一直都是个难题,甚至很多老手也会产生困惑,最近我在网上看到一个问题:#in ...
- C: printf参数执行顺序与前置后置自增自减的影响
起源: 今天在了解副作用side-effect的过程中,看到了下面的网页,把我带到了由printf引起的一系列问题,纠结了一整天,勉强弄懂. 第一个代码没什么好解释的.而第二个printf(" ...
随机推荐
- 数据库对应的jdb连接
数据库Database URLJDBC Driver class驱动包 Mysqljdbc:mysql://localhost:port/DBnamecom.mysql.jdbc.Drivermysq ...
- golang垃圾回收机制
golang的GC,1.8通过混合写⼊屏障, 使得STW降到了sub ms.go语言中程序代码执行和垃圾回收是并发执行的. 当前Go GC特征 :三色标记,并发标记和清扫,非分代,非紧缩,混合写屏障. ...
- 安装和换源pip
pip 是 Python 包管理工具,该工具提供了对Python 包的查找.下载.安装.卸载的功能 一.ubuntu安装和配置pip 1.进入终端,输入命令sudo su root ,输入密码后进入r ...
- [01]HTML基础之简单介绍
1.前言 现如今科技进步,足不出户尽晓天下事,一转身便仿若隔世茫然.科技绽放时代,网络技术对人们的触变无疑是深远而重大的,隐于缤纷绚丽的网页背后,是前端的蜕变更新. 如今,随意点开页面,绚丽华彩的特效 ...
- 网站的安全性对seo优化至关重要-智狐SEO顾问
网站的安全性对seo优化至关重要 作者:智狐zhihuseo 从大的范围来看,网站安全性能也属于seo的范畴之一.域名被恶意泛解析就是网站安全性能低下的特征之一,如果网站域名被恶意泛解析,会直接 ...
- Myeclipse新建工作空间配置
之前跟着尚硅谷JavaWeb视频学习,现在总结一下Myeclipse新建工作空间配置 Windows按钮下的Preferences 1. General --> Workspace --&g ...
- C#/WPF/WinForm/.NET程序代码实现软件程序开机自动启动的两种常用方法的示例与源码下载带详细注释-源码代码-注册表方式-启动目录快捷方式
C#/WPF/WinForm/.NET程序代码实现软件程序开机自动启动的两种常用方法的示例与源码下载带详细注释-源码代码-注册表方式-启动目录快捷方式 C#实现自动启动的方法-两种方法 源码下载地址: ...
- Java实现 LeetCode 821 字符的最短距离(暴力)
821. 字符的最短距离 给定一个字符串 S 和一个字符 C.返回一个代表字符串 S 中每个字符到字符串 S 中的字符 C 的最短距离的数组. 示例 1: 输入: S = "loveleet ...
- Java实现蓝桥杯VIP算法训练 小生物的逃逸
试题 算法训练 小生物的逃逸 资源限制 时间限制:1.0s 内存限制:256.0MB 问题描述 空间中有n个球,这些球不相交也不相切.有m个可以视为质点的小生物,可能在某些球内,也可能在所有球之外,但 ...
- Java实现蓝桥杯算法提高12-2扑克排序
扑克牌排序 问题描述 扑克牌排序:构造扑克牌数组,对扑克牌进行排序. 排序原则如下:数字从小到大是2-10.J.Q.K和A,花色从小到大是方块(diamond).梅花(club).红桃(heart). ...