实验2继承及派生讲解.doc

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

实验 2 继承与派生

2.1 实验目的

1.熟练掌握类的继承,能够定义和使用类的继承关系。

2.掌握派生类的声明与实现方法。

3.掌握类构造函数的初始化列表与作用域分辨符的使用方法。

4.理解虚基类在解决二义性问题中的作用。

2.2 实验工具与准备工作

在开始实验前,应回顾或复习相关内容。

需要一台主算机,其中安装有Visual C++ 6.0 等集成开发环境软件。

2.3 实验内容

1.先阅读下列程序,写出执行结果。然后输入程序,调试程序,比较结果的正确性。

// 文件名 : main.cpp

#include // 预处理命令

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

class A

{

public:

// 公有函数 :

A(){ cout << " 构造 A" << endl; } // 构造函数

~A(){ cout << " 析构 A" << endl; } // 析构函数

};

class B: public A

{

public:

// 公有函数 :

B(){ cout << " 构造 B" << endl; } // 构造函数

~B(){ cout << " 析构 B" << endl; } // 析构函数

};

class C: public B

{

public:

// 公有函数 :

C(){ cout << " 构造 C" << endl; } // 构造函数

~C(){ cout << " 析构 C" << endl; } // 析构函数

};

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

{

C obj;//定义对象

system("PAUSE");//调用库函数system( ),输出系统提示信息return 0;//返回值0,返回操作系统

}

2.先阅读下列程序,写出执行结果。然后输入程序,调试程序,比较结果的正确性。

//文件名 : main.cpp

#include

using namespace std;

class A

{

protected:

//数据成员 :

int a;

public:

//公有函数 :

A(int x): a(x){ }

void Show() const{ cout << a << endl; } };

class B

{

protected:

//数据成员 :

int b;

public:

//公有函数 :

B(int x): b(x){ }

void Show() const{ cout << b << endl; } };

class C: public A, public B

{

public:

//公有函数 :

C(int x, int y): A(x), B(y){ }

void Show() const

{ cout << a << "," << b << endl; }

};

int main(void)

{

C obj(5, 18);

obj.Show();

obj.A::Show();

obj.B::Show();

system("PAUSE");

return 0;

} //预处理命令

//使用标准命名空间 std

//数据成员

//构造函数

//显示 a 之值

//数据成员

//构造函数

//显示 a 与 b 之值

//构造函数

//显示 b 之值

//主函数 main(void)

//定义对象

//显示相关信息

//显示相关信息

//显示相关信息

//调用库函数 system( ) ,输出系统提示信息//返回值 0, 返回操作系统

3.程序填空。下面程序主要测试类构造函数的初始化列表与作用域分辨符,请完成程序。

//文件名: main.cpp

#include using namespace std; //预处理命令

//使用标准命名空间std

class A

{

private:

//数据成员 :

int a;//数据成员

public:

//公有函数:

A(int x):a(x){ } void Show() const

{ cout << "a:" << a << endl; } //构造函数

//显示a之值

};

class B: public A

{

protected:

//数据成员 :

int b;//数据成员

public:

//公有函数:

B(int x, int y): void Show() const { A(x) , b(y){ } //构造函数

//显示相关信息

A::Show();

cout << "b:" << b << endl; //调用基类

//显示

A 的成员函数

b 之值

Show()

}

};

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

B obj(5, 18); obj.Show(); //定义对象

//显示相关信息

system("PAUSE"); return 0; //调用库函数

//返回值0,

system( )

返回操作系统

,输出系统提示信息

}

4.改正下面程序中的错误,使其能正常运行。

// 文件名 : main.cpp //1 #include // 预处理命令//2 using namespace std; // 使用标准命名空间 std //3

//4 // 基类 Base //5 class Base //6 { //7 private: //8 // 数据成员 : //9

相关文档
最新文档