13--8Array数组
来源:互联网 发布:python安装opencv3.0 编辑:程序博客网 时间:2024/06/01 14:35
#include<iostream>#include<string.h>#define M 200using namespace std;class array{public:array(int n);~array();int &operator[](int n);array&operator=(array &obj);int operator==(array &obj);void print();private:int size;int *ptr;};// 1 实现构造函数,为类array的对象分配一个包含n个数组元素的整型数组array::array(int n){ int a[M]; cout<<"输入"<<n<<"个整数:"; for(int i=0;i<n;i++) cin>>a[i]; size=n; ptr=new int[size+1]; //sizeof(a) for(int i=0;i<size;i++) //ptr=a;可能会出错,反正我的程序出错了,还是安全起见吧 { ptr[i]=a[i]; }}// 2析构函数 撤销对象array::~array(){ delete []ptr; //数组的撤销方法[]}// 3实现[]的重载,a[n]=y;可以为对象数组的第n个元素赋值,函数的实现避免数组越界int & array::operator [](int n){ if(n>=0&&n<=size) { cout<<"[]重载成功!"<<endl; return ptr[n]; } else { cout<<"[]重载不成功!"; // return 0; }}// 4 实现运算符=的重载,是对象之间正确赋值array & array::operator=(array &obj){int i; if(*this==obj) //很重要 return *this; delete []ptr; ptr=new int[size+1]; //整型数组! 不用strlen()! size=obj.size; for(i=0;i<size;i++){ ptr[i]=obj.ptr[i]; } return *this;}// 5实现==的重载函数,使之可以判断两个数组是否相等int array::operator ==(array &obj){ int count=0,i;//如果两数组大小相等,继续比较数组元素是否相等。否则不等。 if(size==obj.size) { for(i=0;i<size;i++){ if(ptr[i]=obj.ptr[i]) //挨个比较数组元素是否相等。相等的话count自增1count++; } if(count==size) //若最后count==size说明数组元素相等,否则不等 return 2; else return 3; } else return 3;}// printvoid array ::print (){ for(int i=0;i<size;i++) cout<<ptr[i]<<" "; cout<<endl<<endl;}//6 编程测试int main(){ array m(5),n(4),q(6); cout<<"m:"; m.print(); cout<<"n:"; n.print(); cout<<"q:"; q.print(); m[1]=17; cout<<"m[1]=17. m:"; m.print(); n=(n=q); cout<<"把q的值赋给n后,n:"; n.print(); if((n==m)==2) cout<<"n,m相等!"<<endl; else cout<<"n,m不等!"<<endl;return 0;}
- 13--8Array数组
- 数组,Array
- 数组(array)
- 数组:Array
- 数组Array
- Array-数组
- Array数组
- 数组array
- 数组Array
- 数组(Array)
- 数组array
- Array 数组
- Array数组
- array数组
- Array数组
- 数组array
- 数组 array
- Array数组
- Oracle 索引的用法
- 13--7time类(简单)
- 有关数组运用的一些小方法
- 数据结构之堆
- C/C++语言中的表达式求值
- 13--8Array数组
- 自由与恐惧
- ASP.NET打开一个文件夹对话框
- 产品经理宝典:微信为什么会成功?
- 模式识别或行为识别存在的问题
- 14--6Shap类-----简单的继承
- 用普里姆算法求最小生成树
- Linux操作系统上ADSL拨号上网的方法详解
- 数据结构之树-二叉树(Java版本)