第12 周 项目三
来源:互联网 发布:网络推广优化 编辑:程序博客网 时间:2024/05/17 22:21
/**Copyright (c)2016,烟台大学计算机与控制工程学院*All rights reserved.*文件名称:main.cpp*作 者:肖雪*完成日期:2016年6.2*版 本 号:v1.0*问题描述:设计数组类Array,为了实现测试函数中要求的功能,请补足相关的函数(构造、析构函数)和运算符重载的函数。*/#include <iostream>#include <iomanip>#include <cassert>using namespace std;class Array{private: int* list; //用于存放动态分配的数组内存首地址 int size; //数组大小(元素个数)public: Array(int sz = 50); Array(int a[], int sz); Array(const Array &a); ~Array(); Array operator + (const Array &a2); Array &operator = (const Array &a2); int &operator[] (int i); const int &operator[] (int i) const; int getSize() const; //取数组的大小 void resize(int sz); //修改数组的大小 void show() const;};Array::Array(int sz){ assert(sz >= 0); size = sz; list = new int[size];}Array::Array(int a[],int sz){ assert(sz >= 0); size = sz; list = new int [size]; for(int i=0;i<size;++i) list[i]=a[i];}Array::~Array(){ delete [] list;}Array::Array(const Array &a){ size=a.size; list = new int [size]; for(int i=0;i<size;++i) list[i]=a.list[i];}Array Array::operator + (const Array &a2){ assert(size==a2.size); Array total(size); for(int i=0;i<size;++i) total.list[i]=list[i]+a2.list[i]; return total;}Array &Array::operator = (const Array& a2){ if(&a2 != this) { if(size != a2.size) { delete [] list; size=a2.size; list = new int [size]; } for(int i=0;i<size;++i) list[i]=a2.list[i]; } return *this;}int &Array::operator[] (int n){ assert(n >= 0 && n < size); return list[n];}const int &Array::operator[] (int n) const{ assert(n >= 0 && n < size); return list[n];}int Array::getSize() const{ return size;}void Array::resize(int sz){ assert(sz >= 0); if (sz == size) return; int* newList = new int [sz]; int n = (sz < size) ? sz : size; for (int i = 0; i < n; i++) newList[i] = list[i]; delete[] list; list = newList; size = sz;}void Array::show() const{ for (int i = 0; i < size; i++) cout<< list[i]<<" "; cout<<endl;}int main(){ int a[8]= {1,2,3,4,5,6,7,8}; int b[8]= {10,20,30,40,50,60,70,80}; Array array1(a,8),array3,array4; const Array array2(b,8); array4=array3=array1+array2; array3.show(); array4.resize(20); array4[8]=99; cout<<array4[8]<<endl; cout<<array2[3]<<endl; return 0;}
0 0
- 第12周项目三
- 第12 周 项目三
- 2014-第12周项目三-摩托车
- 第12周项目三转二进制
- 第3周项目三
- 第12周项目1:法三(运用数组)
- 第12周 项目三-日期时间类
- 第12周项目三广度优先遍历算法实现
- 第12周 【项目三】 Floyd算法验证
- 第6周项目三-点类
- 第7周项目三-友元类
- 第14周项目三-CSolid
- 第06周:项目三:多文件组织
- 第07周:项目三:改
- 第2周项目三 体验复杂度
- 第16周项目三--电子字典
- 第2周 【项目三】 汉诺塔
- 第4周 【项目三】 单链表应用
- 第十四周阅读程序2
- Android面试题二
- 使用bash工具创建ssh key
- 十四周练习
- 第十四周阅读程序3
- 第12 周 项目三
- 两个成员的类模板
- css基础
- [C++基础]队列<queue>中的常用函数
- LeetCode题解——Data Stream as Disjoint Intervals
- 分数类中的运算符重载
- 手动开发动态资源之servlet初步
- Android-Apk插件化研究
- Unity中的XML文件创建,读取,修改,添加