实验二

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

实验二类定义、构造函数、静态成员编程实验

实验目的

掌握类的定义方法,构造函数、析构函数、拷贝构造函数,静态成员的使用方法。

进一步熟悉Visual C++的编程环境

实验内容

1.定义一个描述通讯录的类,数据成员包括通信录名称(类静态数据成员),姓

名、单位、电话号码、邮编,成员函数有输出各项数据、分别置各项数据、分别获取各项数据,同时包括构造函数、拷贝构造函数、析构函数,以及获取和修改通信录名称的静态成员函数。

实验要求:

(1)通讯录类的定义如下: 

class COM{

static char COMName[100]; //通讯录名称

char *pname; //姓名

char *punit; //单位

char *pnum; //电话号码

char box[6]; //邮编

public:

COM();

COM(char *name,char *unit,char *num,char *b);

COM(const COM &p);

~COM();

void print();

void setname(char *name);

void setuint(char *unit);

void setnum(char *num);

void setbox(char *b);

char *getname();

char *getuint();

char *getnum();

char *getbox();

static char *getCOMName();

static void setCOMName(char *CName);

};

(2)在缺省构造函数中,姓名、单位、电话号码、邮编初始化为空。 

(3)在构造函数和拷贝构造函数中都要为pname、punit和pnum动态申请空间,即通过new运算申请空间。 

(4)在析构函数中要根据pname、punit和pnum是否占有空间确定是否需要删除空间,如果需要则要用delete运算回收空间。 

(5)通讯录类用单独的文件“COM.cpp”实现,,即函数在实现部分定义,通讯录类的定义放在一个头文件“COM.h”中,主文件名为“main.cpp”。具体步骤如下:1)新建一个项目,命名为“MyCOM”

2)用File|New创建一个新的”C++ Source File”,命名为main.cpp

3)用File|New创建一个新的”C++ Source File”,命名为COM.cpp

4)用File|New创建一个新的”C/C++ Header File”,命名为COM.h

5)在main.cpp和COM.cpp 中包含进头文件:#include “COM.h” 

[测试数据]

测试通讯录类的主程序为:

#include "iostream.h"

#include "COM.h"

void main()

{

COM c1("王大海","江大","88664455","212013"),

c2("张三","江科大","88776699","212034"),c3(c1),c4;

c3.setname("李四");

c4.setname("王五");

c4.setuint("科大");

c4.setnum("22334455");

c4.setbox("212067");

c4.setCOMName("我的通讯录");

cout<<"通讯录:"<

c1.print();

c2.print();

c3.print();

c4.print();

}

[思考问题]

(1)多文件结构中头文件的作用是什么?将程序划分为多个文件有什么好处?

(2)如果在拷贝构造函数中直接对象赋值,结果会如何?

相关文档
最新文档