2013级C++第7周(春)项目——深复制、友元、模板 【项目2-体验常成员函数】
2014-04-08 11:00
531 查看
/* * 程序的版权和版本声明部分 * Copyright (c)2013, 在校学生 * All rightsreserved. * 文件名称: 项目2.cpp * 作 者:刘旺 * 完成日期:2014年4月8日 * 版本号: v1.0 * * 输入描述: * 问题描述:【项目2-体验常成员函数】 * 下面的程序,因为存在指针类型的数据成员,需要能完成深复制的构造函数。 * 请补充完整构造函数和析构函数(其他不必动)。其中,构造函数要完成下面三个任务: * (1)为各成员函数赋值,其中arrayAddr应该是为保存数据新分配的连续空间的首地址; * (2)将a指向的数组中的数值,逐个地复制到新分配的空间中 * (3)getMax( )函数采取的策略是直接返回max,计算max的工作,由构造函数完成 * 程序输出: * 问题分析: */ #include<iostream> using namespace std; class A { private: int *arrayAddr;//保存一个有len个整型元素的数组的首地址 int len; //记录动态数组的长度 int max; //动态数组中的最大值(并非动态数组中必须要的数据成员) public: A(int *a, int n); ~A(); int getValue(int i); //获得a指向的数组中下标为i的元素的值 int getLen(); //返回数组长度 int getMax( ); //返回数组中的最大值 }; A::A(int *a, int n)//构造函数 { len = n ; arrayAddr = new int ; max = a[0] ; for(int i=0; i<len ; i++) { arrayAddr[i] = a[i] ; if(max < arrayAddr[i]) { max = arrayAddr[i] ; } } } int A::getValue(int i){ //获得a指向的数组中下标为i的元素的值 return arrayAddr[i]; } int A::getLen(){ //返回数组长度 return len; } int A::getMax( ) { //返回数组中的最大值 return max; } A::~A()//析构函数 { delete []arrayAddr ; } int main(){ int b[10]= {75, 99, 90, 93, 38, 15, 5, 7, 52, 4}; A 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}; A r2(c,15); int i,s=0; for(i=0; i<r2.getLen(); i++) s+=r2.getValue(i); cout<<"所有元素的和为:"<<s<<endl; return 0; }
坚持不懈
相关文章推荐
- 2013级C++第7周(春)项目——深复制、友元、模板 【项目1-深复制体验】
- 2013级C++第7周(春)项目——深复制、友元、模板 【项目3-成员函数、友元函数和一般函数有区别】
- 2013级C++第7周(春)项目——深复制、友元、模板
- 2013级C++第6周(春)项目——对象指针、const【项目1-体验常成员函数】
- C++第7周(春)项目1 深复制体验
- 2015级C++第7周项目 友元、共享数据保护、多文件结构
- C++第7周(春)项目2 再一个深复制
- 2015级C++第7周项目 友元、共享数据保护、多文件结构
- C++第6周(春)项目1 体验常成员函数
- C++项目 体验常成员函数
- 2013-C++第7周项目——初步体验分支结构和循环结构的程序设计
- C++第9周项目 动态存储分配及深复制 【项目1-深复制体验】(复习新版)
- 《C++语言基础》实践项目——深复制、友元、模板
- C++第7周(春)项目2 再一个深复制
- C++程序设计-第7周 静态成员、友元、类模板
- 第五周项目1-体验常成员函数
- 第七周项目1-深复制体验
- 第六周【项目1-深复制体验】1
- 2013级C++第14周(春)项目——多态性、虚函数和抽象类
- 第六周项目一深复制体验