第15周C++上机报告(数组重载)
2013-06-14 11:04
387 查看
/* * 程序的版权和版本声明部分 * Copyright (c)2012, 烟台大学计算机学院学生 * All rightsreserved. * 文件名称: object.cpp * 作者:王昕彤 * 完成日期: 2013年6 月 8 日 * 版本号: v1.0 * 输入描述:无 * 问题描述:重载操作数组 * 程序输出: */ #include <iostream> using namespace std; class MyArray { private: int *arr; //用于存放动态分配的数组内存首地址 int size; //数组大小 public: MyArray(int sz=50); MyArray(int a[],int sz); //由一个内置类型的数组初始化 MyArray(const MyArray &A); //复制构造函数 ~MyArray(void); //析构函数,注意释放空间 MyArray operator =(const MyArray &A); //重载“=”使得数组对象可以整体赋值 bool operator == (MyArray& A); //重载==,使得Array对象能整体判断两个数组是否相等(size相等且对应元素相等) int operator[](int i); MyArray operator + (MyArray&A); friend ostream& operator << (ostream& out,MyArray& A); //重载<<,输出数组 int GetSize(void) const; //取数组大小; }; //以下为类成员函数的定义 MyArray::MyArray(int sz) { size=sz; arr=new int[50]; for(int i=0;i<50;i++) { arr[i]=0; } } MyArray::MyArray(int a[],int sz) { arr=new int[50]; for(int i=0;i<50;i++) { arr[i]=a[i]; } size=sz; } // MyArray::MyArray(const MyArray &A) MyArray::~MyArray(void) { //delete [] MyArray; } MyArray MyArray::operator=(const MyArray &A) { int i; size=A.size; for(i=0;i<=size;i++) { arr[i]=A.arr[i]; } return MyArray(arr,size); } ostream& operator << (ostream& out,MyArray& A) { for(int i=0;i<A.size;i++) { out<<A.arr[i]<<" "; } out<<endl; return out; } int MyArray::operator[](int i) { return(arr[i]); } MyArray MyArray::operator + (MyArray&A) { int i; size=A.size; for(i=0;i<=size;i++) { arr[i]+=A.arr[i]; } return MyArray(arr,size); } int MyArray::GetSize(void) const { return size; } //测试函数 int main() { int a[10]= {1,2,3,4,5,6,7,8,9,10}; int b[10]= {4,5,6,7,8,9,10,11,12,13}; MyArray arr1(a,10); //测试用内置的数组初始化新定义的数组对象 MyArray arr2(b,10); MyArray arr3(10);//测试只指定大小的新数组对象的初始化 arr3=arr2; cout<<"arr1:"<<" "<<arr1; //测试对<<的重载 cout<<"arr2:"<<" "<<arr2; //测试对<<的重载 cout<<"arr3=arr2"<<" "<<arr3; //测试对<<的重载 cout<<"The size of arr1 is: "<<arr1.GetSize()<<endl; //测试GetSize()成员函数 cout<<"arr1[3]"<<arr1[3]<<endl;//测试对【】的重载 MyArray arr4=arr1+arr2; cout<<"arr1+arr2:"<<arr4; return 0; }
运行结果:
相关文章推荐
- 第五周C++上机报告(对象数组处理成绩)
- C++第6次实验(基础班)—数组2(上机报告)
- 第二周C++上机报告(用结构体数组做计算)
- 我的第四十个C++上机报告(小心的放开玩字符串/字符数组第一季)
- C++程序设计-第15周数组上机实践项目
- 第二周C++上机报告(有序的结构体数组)
- 我的第四十一个C++上机报告(小心的放开玩字符串/字符数组第一季2)
- 我的第三十四个C++上机报告(数组大折腾)
- 第九周C++上机报告(定义Complex类中的<<和>>运算符的重载)
- 第二周C++上机报告(读取数据到结构体数组)
- C++程序设计-第16周字符数组及指针上机实践项目
- c++上机报告4(循环)
- c++上机报告6(循环)
- 我的第二十二个C++上机报告(吃饭,睡觉,打豆豆,,,)
- 第五周C++上机报告(三角形类之一)
- C++上机报告(项目二)
- C++第一次上机实验报告—02
- 我的第一个C++上机报告
- C++上机报告-2
- C++上机报告 编程序输出各种星号图