C++面向对象程序设计实验五 类与对象之三

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

C++面向对象程序设计实验五类与对象之三

一、实验目的

1、掌握C++类的概念和基本组成。

2、掌握类的声明和使用方法,并能根据实际定义相应的类。

3、熟悉友元函数和友元类的定义与使用方法。

4、掌握静态成员的定义与使用方法。

5、掌握this指针的使用方法。

二、实验内容

1、阅读下面程序,先在纸上写出输出结果,再运行程序核对笔算结果,并说明原因。

(1)

#include // 编译预处理命令

using namespace std; // 使用命名空间std

class Test

{

private:

int a; // 数据成员

public:

~Test() { cout << "对调用默认构造函数的对对象进行析构" << endl; } // 析构函数

void set(int value)

{a=value;}

void show()

{cout << a << endl;}

};

int main() // 主函数main()

{

Test d; // 定义对象

d.set(7);

d.show();

return 0; // 返回值0, 返回操作系统}

(2)

#include // 编译预处理命令

using namespace std; // 使用命名空间std

class Test

{

public:

static int a; // 静态成员

void Init() {a = 1; } // 初始化函数

Test(int a=6) {Init(); a++;} // 构造函数

};

int Test::a = 0; // 初始化a

Test obj; // 定义全局对象

int main() // 主函数main()

{

cout << obj.a << endl; // 输出a

return 0; // 返回值0, 返回操作系统}

2、阅读下面程序,先在纸上写出输出结果,再运行程序核对笔算结果,并说明原因。#include // 编译预处理命令

using namespace std; // 使用命名空间std

class Test

{

public:

static int a; // 静态成员

void Init() {a = 1; } // 初始化函数

Test(int a=6) {Init(); a++;} // 构造函数

};

int Test::a = 0; // 初始化a

Test obj; // 定义全局对象

int main() // 主函数main()

{

cout << obj.a << endl; // 输出a

return 0; // 返回值0, 返回操作系统

}

3、阅读下面程序,先在纸上写出输出结果,再运行程序核对笔算结果,并说明原因。#include // 编译预处理命令

using namespace std; // 使用命名空间std

class Test

{

private:

static int n; // 静态成员

public:

Test() { n += 2; } // 构造函数

~Test() { n -= 3; } // 析构函数

static int GetNum() { return n; } // 返回n

};

int Test::n = 1; // 初始化n

int main() // 主函数main()

{

Test *p = new Test; // 定义指针p

delete p; // 释放p指向的动太对象

cout << "n=" << Test::GetNum() << endl; // 输出n

return 0; // 返回值0, 返回操作系统

}

4、阅读下面程序,先在纸上写出输出结果,再运行程序核对笔算结果,并说明原因。#include // 编译预处理命令

using namespace std; // 使用命名空间std

class Test

{

private:

long x; // 私有数据成员

public:

Test(long a): x(a) { } // 构造函数

friend long Fun(Test s); // 友元

};

long Fun(Test s)

{

if (s.x <= 1 ) return 1; // 递归结束

else return s.x * Fun(Test(s.x - 1)); // 递归调用

}

int main() // 主函数main()

{

int sum = 0; // 定义变量

for (int i = 0; i < 6; i++)

sum += Fun(Test(i)); // 累加求和

cout<

return 0; // 返回值0, 返回操作系统}

5、定义一个描述员工(Employee)基本情况的类,数据成员包括编号(num)、姓名(name)、性别(sex)、工资(wage)、人数(count)、总工资(totalWage)。其中姓名定义为长度为18的字符数组,性别为为长度为3的字符数组,其它数据成员类型为整型,总工资和人数为静态数据成员,函数成员包括构造函数、显示基本数据函数(ShowBase)和显示静态数据函数(ShowStatic),其中构造函数由已知参数编号(nu) 、姓名(nm) 、性别(sx)和工资(wg)构造对象,显示基本数据函数用于显示学生的编号、姓名、性别和工资,显示静态数据函数为静态成员函数,用于显示人数和总工资;要求所有数据成员为protected访问权限,所有成员函数为public访问权限,在主函数中定义若干个员工对象,分别显示员工基本信息,以及显示员工人数和总工资。

三、实验小结与体会

1、实验中存在的问题,解决办法。

2、实验体会。

相关文档
最新文档