第6周项目2——我的数组类
2015-04-15 08:42
134 查看
/* *Copyright(c)2014,烟台大学计算机学院 *All rights reserved. *文件名称:main.cpp *作者:王元阳 *完成日期:2015年 4月15日 *版本号:v1.0 *问题描述:下面的程序,因为存在指针类型的数据成员,需要能完成深复制的构造函数。请补充完整构造函数和析构函数(其他不必动)。其中,构造函数要完成下面三个任务: (1)为各成员函数赋值,按照深复制原则,其中arrayAddr应该是为保存数据新分配的连续空间的首地址; (2)MyArray(int *a, int n)中,要将a指向的数组中的数值,逐个地复制到新分配的arrayAddr指向的空间中; (3)getMax( )函数采取的策略是直接返回max(所以,计算max的工作,由构造函数完成) *输入描述: *程序输出:编写的程序 */ #include<iostream> using namespace std; class MyArray { private: int *arrayAddr; //保存一个有len个整型元素的数组的首地址 int len; //记录动态数组的长度 int max; //动态数组中的最大值(并非动态数组中必须要的数据成员) public: MyArray(int *a, int n); ~MyArray(); int getValue(int i); //获得数组中下标为i的元素的值 int getLen(); //返回数组长度 int getMax(); //返回数组中的最大值 }; MyArray::MyArray(int *a,int n) { len=n; arrayAddr=new int ; max=a[0]; for(int i=0;i<n;i++) { arrayAddr[i]=a[i]; if(a[i]>max) max=a[i]; } } MyArray::~MyArray() { delete arrayAddr; } int MyArray::getValue(int i)//获得数组中下标为i的元素的值 { return arrayAddr[i]; } int MyArray::getLen() //返回数组长度 { return len; } int MyArray::getMax() //返回数组中的最大值 { return max; } int main() { int b[10]= {75, 99, 90, 93, 38, 15, 5, 7, 52, 4}; MyArray r1(b,10); cout<<"最大值:"<<r1.getMax()<<endl; int c[15] = {18,68,10,52,3,19,12,100,56,96,95,97,1,4,93}; MyArray r2(c,15); int i,s=0; for(i=0; i<r2.getLen(); i++) s+=r2.getValue(i); cout<<"所有元素的和为:"<<s<<endl; return 0; }
相关文章推荐
- 第6周项目-我的数组类
- 第九周--项目一--猴子选大王(数组版)
- 第9周项目1-猴子选大王(数组版)
- 第十四组项目4-数组的排序冒泡法
- 第十三周项目四之数组的排序
- 第6周项目2 建立链栈算法库
- 第二周上机任务项目2-读取数据到结构体数组 (另一个版本)
- 第十六周项目1-数组的排序
- 第十六周OJ项目1逆序输出数组(指针)
- 第九周项目1-猴子选大王(数组版)
- 第7周 【项目4】 队列数组
- C++实验5--项目1:数组分离
- 第12周项目3—数组类运算的实现
- 第七周项目4-队列数组
- 第七周项目4队列数组
- 【项目中】解析json数组对象
- 第七周项目4 -——队列数组
- 第十三周项目 1 数组大折腾(1)——从前往后输出
- 第七周 项目4 : 队列数组
- 第13周项目1数组中元素值为3的倍数的数和下标为3的倍数的数