运算符重载实现数组自加、自减
来源:互联网 发布:交换机端口速率配置 编辑:程序博客网 时间:2024/05/20 07:17
/*定义一维数组类 Array,成员数组使用动态内存。重载自增和自减运算符(前置、后置)实现数组元素的自增和自减。具体要求如下:(1)私有数据成员: int *p; // 表示一维数组 int n; // 一维数组的大小(2)公有成员函数: 构造函数:初始化数据成员; 拷贝构造函数 重载前置自增的成员函数; 重载后置自增的成员函数; 重载前置自减的友元函数; 重载后置自减的友元函数; void print():输出数组成员的函数; 析构函数:释放动态内存; 若有必要可增加其它成员函数。(3)以数组“{1,2,3,4,5,6,7}”对所定义的类进行测试,要求输出数组元素的自增和自减(前置、后置)情况。*/#include<iostream>using namespace std;class Array{private: int *p; int n;public: Array(int *, int ); Array& operator ++(); Array& operator ++(int ); friend Array& operator --(Array &arr); friend Array& operator --(Array &arr, int ); friend ostream & operator <<(ostream &, Array &); void print(); ~Array();};Array::Array(int *temp, int num){ p = new int; p = temp; n = num;}//有参数的++重载为后置重载Array& Array::operator ++(){ int *pp = p; for (int i = 0; i < n; i++) { ++(*pp); pp++; } return *this;}Array &Array::operator ++(int m) //注意此处,后置运算符需要有虚参数,因为类有了n的定义,所以应该换一个虚参数{ int *pp = p; for (int i = 0; i < n; i++) { (*pp)++; pp++; } return *this;}Array& operator --(Array &arr){ int *pp = arr.p; for (int i = 0; i < arr.n; i++) { --(*pp); pp++; } return arr;}Array& operator --(Array &arr, int n){ int *pp = arr.p; for (int i = 0; i < arr.n; i++) { (*pp)--; pp++; } return arr;}void Array::print(){ int *pp = p; for (int i = 0; i < n; i++) { cout << *pp << '\t'; pp++; } cout << endl;}ostream & operator <<(ostream & output, Array & arr){ int *pp = arr.p; for (int i = 0; i < arr.n; i++) { output << *pp << '\t'; pp++; } return output;}Array::~Array(){ delete p;}int main(){ int a[] = { 1,2,3,4,5,6 }; Array arr(a, 6); arr.print(); cout << ++arr << endl; cout << arr++ << endl; cout << --arr << endl; cout << arr-- << endl; arr.print(); system("pause"); return 0;}
阅读全文
0 0
- 运算符重载实现数组自加、自减
- 自加/自减运算符的重载
- c++ 自加或自减 的运算符重载
- 运算符重载-自加/自减运算符的重载
- 数组自加运算
- 自增自减运算符重载
- 重载自增,自减运算符
- 自加自减运算符
- 自加自减运算符
- Java自加自减运算符
- 自加自减运算符
- 运算符的重载+、-、*、/、[]、自加++的重载
- 重载自减运算符
- 运用c++中的运算符重载理解自加和自减操作
- 北大 C++ 4.6 自加自减运算符的重载
- 自加运算符
- 自加运算符( ++)
- 自加、自减运算符和逗号运算符
- IDEA Usage of API documented as @since 1.6+ 语法错误解决方案
- 感谢国内知名 Android 开发者 「stormzhang」推荐了我的公众号
- leetcode题解-24. Swap Nodes in Pairs
- 不用加减乘除做加法
- vb.net 教程 4-8 文本文件读写 5
- 运算符重载实现数组自加、自减
- 干货: 如何安装这 4 个能提升你学习和工作效率的 vim 插件?(最简单的一篇)
- 前端基本知识题目
- 技术干货:Linux Shell 编程基础,看这一篇就够了!
- mysql
- 从HTTP到HTTPS协议系统升级总结
- Hongcow Solves A Puzzle (思维)
- Chapter 3. Strings, Vectors, and Arrays
- 分享 2 个做笔记必备的思维导图工具(周末推荐)