第六周任务二之程序填空

a. 用指针访问对象

#include<iostream>

using namespace std;

class A
{
private:

	int a;

public:

	A() {a = 0;}

	A(int aa):a(aa){}  //定义构造函数,用参数aa初始化数据成员a
};
void main() 
{
	A *p;  //定义类A的指针对象p
	p = new A(5);   //用p指向动态对象并初始化为整
}

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)
{
	int i;

	n = nn;

	MaxLen=MM;

	if(n > MaxLen) exit(1);//如果n > MaxLen,显示错误

	a=new int[MaxLen];

	for(i = 0; i < nn; ++i);  //以i为循环变量把aa数组中每个元素值传送给a数组的对应元素中
	{
		a[i] = aa[i];
	}
}
	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;

	system("pause");

	return ;
}

经验积累:

用new开辟的空间,要用delete回收


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值