中国地质大学(武汉)C++编程声明一个学生类CStudent以及一个点类CRange

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

《面向对象与程序设计》

C++实习报告

中国地质大学(武汉)

工程学院

2014年5月29日

老师:曹弘

班级:052126

姓名:方日忠

学号:20121002220

实验一:

构造一个学生类CStudent,要求如下:

1、具有两个保护的成员:姓名和学号

2、实现带参数的构造函数,在构造函数中输出“带参构造函数被

调用”

3、实现拷贝构造函数,在其中输出“拷贝构造函数被调用”

4、实现析构函数,在析构函数中输出“析构函数被调用”

5、在类的外部,声明一个全局函数void PrintInfo(CStudent

stu);实现对学生信息的输出

6、在main中声明CStudent的对象,并利用PrintInfo实现对它

的调用

实验思路:

首先定义的一个外部函数,用于输入个人信息,如姓名和学号。主函数中用#include "Student.h"来调用外部函数,本实验中分别通过析构函数,拷贝构造函数以及带参构造函数的调用以及信息的输出。

外部main函数:

#include

#include "Student.h"

using namespace std;

int main()

CStudent pp("方日忠","20121002220");

PrintInfo(pp);

return 0;

}

程序代码:

#include "Student.h" //包含外部函数#include

#include

using namespace std;

CStudent::CStudent() //构造函数的定义{

cout<<"构造函数被调用!"<<’\n”<

}

CStudent::~CStudent() //析构函数的定义{

cout<<"姓名: "<

cout<<"学号: "<

cout<<"析构函数被调用!"<<’\n”<

CStudent::CStudent(char s1[20],char s2[20]) //构造函数的实现{

strcpy(name,s1);

strcpy(ID,s2);

cout<<"姓名: "<

cout<<"学号: "<

cout<<"带参数的构造函数被调用!"<<’\n”<

}

CStudent::CStudent(const CStudent &p) //拷贝构造函数的实现

{

strcpy(name,); //将字符串复制到字符串name中strcpy(ID,p.ID); //将字符串p.ID复制到字符串ID中

cout<<"姓名: "<

cout<<"学号: "<

cout<<"拷贝构造函数被调用!"<<’\n”<

}

void PrintInfo(CStudent stu) //利用PrintInfo实现对main中声明CStudent的对象的调用

{

cout<<"姓名: "<<<

cout<<"学号: "<

运行截图:

实验二:

声明一个点类CRange,要求如下:

1、具有两个保护类型的数据成员:width和height

2、实现带参数的构造函数、拷贝构造函数

程序代码:

#include

class CRange //定义类CRange {

public:

CRange(int wid, int hei) //声明类的成员函数

{

width= wid;

height= hei;

cout<<"使用构造函数,进行对象的创建!"<

cout<<"width:"<

} //输出width和height

CRange(CRange&rng) //这里是自定义的拷贝构造函数

{

width = rng.width;

height= rng.height;

cout<<"使用拷贝构造函数,进行对象的复制!"<

cout<<"width:"<

} //输出width和height

protected: //声明类的数据成员width和height int width; //定义宽度

int height; //定义高度

};

void main()

{

CRange a(10,10); //调用有参数的构造函数

CRange b=a; //通过调用拷贝构造函数,用对象a对对象b进行复制

}

运行截图:

实验总结:

通过本次实习的内容,加深了对类与对象定义的的理解,掌握了对类成员的访问控制,对访问控制权限的3种类型,有了更加熟练的运用。另外掌握并运用构造函数、析构函数以及拷贝构造函数,他们都是特殊的成员函数。

构造函数主要用于在对象创建时,为对象分配内存空间,进行初始化,构造函数可以有参数,也可以没有参数。

析构函数也是特殊的类成员函数,它没有返回类型,没有参数,不能随意调用,也没有重载性,只有在类对象的生命周期结束的时候,由系统自动调用。

拷贝构造函数的作用是,当用一个对象去初始化同类的另一个对象时惊醒初始化复制,在每一个类中都必须有一个拷贝构造函数。

相关文档
最新文档