2012C++程序设计实验报告【6.2】

来源:互联网 发布:阿里云北京办公地点 编辑:程序博客网 时间:2024/05/04 00:19

/* (程序头部注释开始)
* 程序的版权和版本声明部分
* Copyright (c) 2011, 烟台大学计算机学院学生
* All rights reserved.
* 文件名称:指针问题

* 作 者: 王琳
* 完成日期: 2012年 3 月26日
* 版 本 号:6-2

* 对任务及求解方法的描述部分
* 输入描述:指针,析构函数的运用

* 问题描述:

* 程序输出: ......
* 程序头部的注释结束
*/

源程序:

a. 用指针访问对象

#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的指针对象pp= new A(5);   //用p指向动态对象并初始化为整数system("PAUSE");}运行结果:

b. 指针类型作为成员函数的参数

 

#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+b[i];}cout<<"s="<<s<<endl;}


运行结果:

 

感想:指针问题学的不是很好,对于b中的要求,错误可能不太好改,所以,课本第六章还是有必要再复习啊!

原创粉丝点击