重载特殊操作符:[]、=、==、!=
来源:互联网 发布:java 线程局部变量 编辑:程序博客网 时间:2024/05/21 04:18
#include "iostream"#include <cstdio>#include <cstdlib>using namespace std;class Array{private: int mLength; int* mSpace;public: Array(int length=0); Array(const Array& obj); int length(); void setData(int index, int value); int getData(int index); int& operator[](int N); bool operator==(Array & obj); bool operator!=(Array & obj); Array& operator=(Array & obj); ~Array();};Array::Array(int length){ if( length < 0 ) { length = 0; } mLength = length; mSpace = new int[mLength];}Array::Array(const Array& obj){ mLength = obj.mLength; mSpace = new int[mLength]; for(int i=0; i<mLength; i++) { mSpace[i] = obj.mSpace[i]; }}int Array::length(){ return mLength;}void Array::setData(int index, int value){ mSpace[index] = value;}int Array::getData(int index){ return mSpace[index];}Array::~Array(){ mLength = -1; delete[] mSpace;}int& Array::operator[](int N){ return mSpace[N];}Array& Array::operator=(Array & obj){ if(mSpace != NULL) delete[] mSpace; mLength = obj.mLength; mSpace = new int[mLength]; for(int i=0; i<mLength; i++) { mSpace[i] = obj.mSpace[i]; } return *this;}bool Array::operator==(Array & obj){ int i=sizeof(mSpace)/sizeof(int); int j=sizeof(obj.mSpace)/sizeof(int); if (i == j) { for(int k=0;k<i;k++) { if(mSpace[k]!=obj.mSpace[k]) return false; } return true; } else { return false; }}bool operator!=(Array & obj){ return !(*this==obj);}int main(){ Array a1(10); Array a3(10); for(int i=0; i<a1.length(); i++) { //a1.setData(i, i); a1[i] = i; a3[i] = i+1; } for(int i=0; i<a1.length(); i++) { //printf("array %d: %d\n", i, a1.getData(i)); printf("array a1[%d]: %d\n", i, a1[i]); } Array a2 = a1;//copy构造 for(int i=0; i<a2.length(); i++) { printf("array a2[%d]: %d\n", i, a2.getData(i)); } if (a3==a1) { printf("相等\n"); } else { printf("不相等\n"); } Array a4; a4=a3 = a2; //执行=操作 for(int i=0; i<a3.length(); i++) { printf("array a3[%d]: %d\n", i, a3[i]); printf("array a4[%d]: %d\n", i, a3[i]); } system("pause"); return 0;}
0 0
- 重载特殊操作符:[]、=、==、!=
- C++-重载操作符<< >> = + - * /
- C++ 重载=操作符
- 单链表中重载操作符“=”
- C++中几个特殊运算符的重载(= 、++、--、下标运算符的重载)
- C++ 操作符=的重载
- C++ 操作符重载 operator = 、operator <
- C++ 操作符重载 operator = 、operator <
- 重载赋值操作operator=()
- 特殊操作符合重载
- c++超基础:操作符重载下(重载符号:=、[]、==、!=)示例
- C++操作符重载(++、=、<<、==、!=)
- VC&operate =操作(重载)解释
- C/C++ 之 ‘++’、‘+’、‘+=’、‘-’、‘()’、‘--’ 操作符的重载实现重载
- C++编程思想之操作符=重载
- 拷贝构造函数与重载=操作符
- 拷贝构造函数和重载"="赋值操作符
- C++ 虚 重载操作符 virtual operator= 使用方法
- Python--通过XPath实现网络爬虫
- 蓝牙的基本使用二
- Unity3D开发小贴士(六)Lua里调用C#扩展
- Node.js基础(一)
- 11.8时空传送
- 重载特殊操作符:[]、=、==、!=
- 《Web前端开发最佳实践》读书笔记
- 城市级联
- 11.10模拟赛
- Java网络爬虫crawler4j学习笔记<24> PageFetchResult类
- error while loading shared libraries : libts-0.0.so.0:cannot open shared object file: No such file o
- C语言记录之九
- 设置Activity、AppcompatActivity为透明
- 团队项目_动作游戏demo(1)