实验2继承与派生讲述.doc
文本预览下载声明
实验2 继承与派生
2.1 实验目的
1.熟练掌握类的继承,能够定义和使用类的继承关系。
2.掌握派生类的声明与实现方法。
3.掌握类构造函数的初始化列表与作用域分辨符的使用方法。
4.理解虚基类在解决二义性问题中的作用。
2.2 实验工具与准备工作
在开始实验前,应回顾或复习相关内容。
需要一台主算机,其中安装有Visual C++ 6.0等集成开发环境软件。
2.3 实验内容
1.先阅读下列程序,写出执行结果。然后输入程序,调试程序,比较结果的正确性。
// 文件名: main.cpp
#include iostream // 预处理命令
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 iostream // 预处理命令
using namespace std; // 使用标准命名空间std
class A
{
protected:
// 数据成员:
int a; // 数据成员
public:
// 公有函数:
A(int x): a(x){ } // 构造函数
void Show() const{ cout a endl; } // 显示a之值
};
class B
{
protected:
// 数据成员:
int b; // 数据成员
public:
// 公有函数:
B(int x): b(x){ } // 构造函数
void Show() const{ cout b endl; } // 显示a与b之值
};
class C: public A, public B
{
public:
// 公有函数:
C(int x, int y): A(x), B(y){ } // 构造函数
void Show() const // 显示b之值
{ cout a , b endl; }
};
int main(void) // 主函数main(void)
{
C obj(5, 18); // 定义对象
obj.Show(); // 显示相关信息
obj.A::Show(); // 显示相关信息
obj.B::Show(); // 显示相关信息
system(PAUSE); // 调用库函数system( ),输出系统提示信息
return 0; // 返回值0, 返回操作系统
}
3.程序填空。下面程序主要测试类构造函数的初始化列表与作用域分辨符,请完成程序。
// 文件名: main.cpp
#include iostream // 预处理命令
using namespace std; // 使用标准命名空间std
class A
{
private:
// 数据成员:
int a; // 数据成员
public:
// 公有函数:
A(int x): a(x) { } // 构造函数
void Show() const // 显示a之值
{ cout a: a endl; }
};
cla
显示全部