6-2 程序填空(指针类型作为成员函数的参数)

原创 2012年03月28日 17:01:37

/*
* 程序的版权和版本声明部分
* Copyright (c) 2011, 烟台大学计算机学院学生
* All rights reserved.
* 文件名称:                             
* 作    者: 张传新                            
* 完成日期:  2012       年  3     月     28   日
* 版 本 号:  1       

* 对任务及求解方法的描述部分
* 输入描述:
* 问题描述:
* 程序输出:
* 问题分析:……
* 算法设计:……
*/

#include<iostream>
using namespace std;
class A 
{
private:
	int *a; 
	int n; 
	int MaxLen;
 public:
	 A(): a(0), n(0), MaxLen(0) {}   //定义构造函数
	~A();                            //定义析构函数
	A(int *aa, int nn, int MM);
	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,9,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");
}

彩色部分为填空部分

运行结果:

经验积累:

执行析构函数的情况:1.如果在一个函数中定义了一个对象(它是自动局部对象)
,当这个函数被调用结束时,对象应该释放,在对象释放前自动执行析构函数;
2.static局部对象在函数调用结束时对象并不释放,因此也不调用析构函数,只在
main函数结束或调用exit函数结束时,才调用static局部对象的析构函数;3.如果
定义了一个全局对象,则在程序的流程离开其作用域时(如main函数结束或调用exit
函数),调用该全局对象的析构函数;4.如果用new运算符动态的建立了一个对象,
,当用delete运算符释放该对象时,先调用该对象的析构函数。

上机感言:

我决定每天在做完C++作业的同时,额外的抽出至少半小时的时间编写C++程序,以
弥补自己在上个学期漏下的知识点,希望自己能坚守住自己的诺言。


 

版权声明:本文为博主原创文章,未经博主允许不得转载。

相关文章推荐

C++类成员函数指针2

Item 45: 利用成员函数模板接受所有兼容类型(智能指针的部分实现)

真实指针做得很好的一件事是,它支持隐式转换,如下: class Top { ... }; class Middle: public Top{ ... }; class Botto...

关于空指针类型的类变量的成员函数访问的问题

下面代码会有什么输出? #include using namespace std; class A { public: void fun() { cout<<"fun"<...

c++ 父类成员函数的参数中有子类类型的对象 (前置声明解决)

父类Matrix  子类Image ;显然在子类的头文件Image.h中要包含进父类的的头文件Matrix.h,但在 父类成员函数的参数中有子类类型的对象 时,参数中的Image类型对象提示为未知的类...

const限定修饰符用法总结(常量,指针,迭代器,函数参数,成员函数)

const限定修饰符用法总结(常量,指针,迭代器,函数参数,成员函数) 在这里总结一下const限定修饰符的各种用法,都已经过vs2010测试。 1)  声明及初始化const常量。 在...

const限定修饰符用法总结(常量,指针,迭代器,函数参数,成员函数)

1)  声明及初始化const常量。 在声明一个const常量时,必须对其初始化,否则会报错。 1 const int constvar; //error2 const i...

const限定修饰符用法总结(常量,指针,迭代器,函数参数,成员函数)

在这里总结一下const限定修饰符的各种用法,都已经过vs2010测试。 1)  声明及初始化const常量。 在声明一个const常量时,必须对其初始化,否则会报错。 1 const in...

C++的成员函数指针与Cococs2d-x的selector机制

在Cocos2d-x中点击某个按钮要执行一个回调函数时,一般的写法是以下这样 :  // add a "share" icon to exit the progress. it's an a...

15). 回调模板函数/回调模板成员函数,回调参数个数和类型不固定,消除类似代码

完整的源代码及用法测试代码可以在我的资源中去下载. C++语法不支持模板函数/模板成员函数作为回调函数,同时把运行期代码向编译期代码转换也只有switch...case或者if..else能够实...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:深度学习:神经网络中的前向传播和反向传播算法推导
举报原因:
原因补充:

(最多只允许输入30个字)