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++程序,以
弥补自己在上个学期漏下的知识点,希望自己能坚守住自己的诺言。


 

类的成员函数指针作为参数传递给其他函数和普通函数指针的传递是不同的

类的成员函数指针作为参数传递给其他函数和普通函数指针的传递是不同的,普通函数指针的传递 只要在参数声明中声明是相同参数个数、类型和相同返回类型的函数指针int (*p)(int),传递时只需传函数名...
  • u011220857
  • u011220857
  • 2014年07月10日 15:57
  • 1937

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

#include #include using namespace std; class A { private: int *a; int n; int MaxLen; public: A(...
  • u012519969
  • u012519969
  • 2014年01月14日 15:55
  • 504

6-2-b 指针类型作为成员函数的参数

/* 【项目1】设计三角形类,通过增加构造函数,使对象在定义时能够进行初始化 * 程序的版权和版本声明部分 * Copyright (c)2012, 烟台大学计算机学院学生 * All rig...
  • blackgirl1111
  • blackgirl1111
  • 2013年04月06日 22:48
  • 818

[C++] 将成员函数作为函数形参

函数以及函数对象都可以作为参数来增加其它函数的功能,并且通常作为STL算法的第二个版本的最后一个参数。成员函数是否可以作为形参呢?如果可以,形参表如何写呢?...
  • ILOVEYOUXIAOWANGZI
  • ILOVEYOUXIAOWANGZI
  • 2014年02月21日 11:29
  • 3202

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

#include using namespace std; class A { private: int *a; int ...
  • sxt15253294227
  • sxt15253294227
  • 2013年04月10日 20:25
  • 465

我能否用void** 指针作为参数, 使函数按引用接受一般指针?

我能否用void** 指针作为参数, 使函数按引用接受一般指针? 不可移植。C 中没有一般的指针的指针类型。void* 可以用作一般指针只是因为当它和其它类型相互赋值的时候, 如果需要, 它可以自动转...
  • Augusdi
  • Augusdi
  • 2014年06月05日 14:27
  • 1127

指针和引用作为参数的区别

int change1(char* name){     name=”alter”;     return 1; } int change2(char* &name){     na...
  • tkp2014
  • tkp2014
  • 2015年08月04日 23:32
  • 370

类成员函数参数的用法

普通的C函数作为参数传递比较简单,下面给出类成员函数作为参数传递的实例: class CMyClass { public: typedef void (CMyClass::*SELFDEF...
  • starry_eve
  • starry_eve
  • 2014年03月07日 18:16
  • 855

指针作为参数传入函数的陷阱

下面以一个例子来引出这种错误:#include using namespace std; #include #include void func(int *p) { p = (int *...
  • Move_now
  • Move_now
  • 2017年05月14日 12:25
  • 692

函数指针做为参数的例子

#include using namespace std; void f1(){std::cout void f2(){std::cout void f3(){std::cout typ...
  • daa20
  • daa20
  • 2015年09月21日 21:54
  • 563
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:6-2 程序填空(指针类型作为成员函数的参数)
举报原因:
原因补充:

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