实验二
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 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)如果在拷贝构造函数中直接对象赋值,结果会如何?