第6周任务2

来源:互联网 发布:linux 安装tar 编辑:程序博客网 时间:2024/06/03 02:29
    /* (程序头部注释开始)* 程序的版权和版本声明部分* Copyright (c) 2011, 烟台大学计算机学院学生 * All rights reserved.* 文件名称:                              * 作    者:      苗影                        * 完成日期:      2012   年  3     月      26  日* 版 本 号:          * 对任务及求解方法的描述部分* 输入描述: * 问题描述: * 程序输出: * 程序头部的注释结束*/    #include<iostream>      using namespace std;      class A       {      private:       int a;      public:       A() {a=0;}       A(int aa):a(aa){}  //定义构造函数,用参数aa初始化数据成员a      };      int main()       {       A *p;//定义类A的指针对象p       p=new A(8); //用p指向动态对象并初始化为整数       return 0;      }  [cpp] view plaincopyprint?    #include<iostream>      using namespace std;      class A       {      private:       int *a;        int n;        int MaxLen;       public:       A(): a(0), n(0), MaxLen(0) {}       A(int *aa, int nn, int MM);       ~A();       int GetValue(int i) {return a[i];}       };      A::A(int *aa, int nn, int MM)      {       n=nn;       MaxLen=MM;       if(n>MaxLen) exit(1);       a=new int[MaxLen];       for(int i=0;i<MaxLen;i++)//以i为循环变量把aa数组中每个元素值传送给a数组的对应元素中       {        a[i]=*(aa+i);       }      }      A::~A()  //析构函数的类外定义,释放指针型数据a所指向的空间      {       delete[] a;      }            void main()      {       int b[10]={1,2,3,4,5,6,7,8,9,10};       A r(b,10,10);       int i,s=0;       for(i=0;i<10;i++) //以i为循环变量,把r对象的a数据成员中的每个元素值依次累加到s中       {        s=s+r.GetValue(i);       }       cout<<"s="<<s<<endl;       }  

经验积累:

1  定义析构函数时是把【】放在a前面的。

2  累加时不是直接写成a[i],而是调用r..GetValue()