C++面向对象程序设计实验五 类与对象之三
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 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、实验体会。