VisualC++程序设计案例教程第二章课后答案.doc
文本预览下载声明
1:填空题
在面向对象的编程中,对象的抽象集合称为__类__。
在C++语言中,类中定义的数据和函数分别称为____成员变量____和____成员函数______。
在类中未说明访问权的情况下,所有成员都是____私有成员________.。
当类的对象生成时,系统将自动调用该类的___构造_____函数。
继承是通过基类与派生类来实现的。基类的成员在派生类中的访问权限由___继承方式___决定。
派生类的对象可以当成____基类____的对象来处理,因此,指向_____基类______对象的指针也可以指向派生类的对象。
对基类对象成员的初始化是通过___构造函数_____语法实现的。
如果一个类中含有纯虚函数,则称该类为________抽象类______。
多态性是指不同的对象收到相同的消息时产生不同的行为方式。编译时的多态性由_______函数重载_______实现,运行时的多态性由_____虚函数重写______实现。
2:选择题
(1) 在定义类时,成员的默认访问属性是 。(C)
A. public
B. protected
C. private
D. static
(2) 在类外定义成员函数时,成员函数名前必须加 来标识该函数为特定类的成员。(B)
A. :
B. ::
C. -
D. this
(3) 类CTest 的默认构造函数和析构函数是 。(A)
A. CTest() 和 ~CTest()
B. CTest(int) 和 ~CTest()
C. CTest() 和 ~CTest(delete)
D. CTest() 和 int~CTest()
(4) 已知CTest 类定义如下,t 是CTest 类的对象,则正确的成员访问是 。(A)
class CTest {
public:
void SetA(int x)
{ a=x; }
private:
int a;
};
A. t.SetA(10)
B. t.a
C. t- SetA(10)
D. t-a
(5) 友元函数可以访问类的 成员。(D)
A. private 和protected
B. protected
C. protected 和public
D. 全部
3:简答题
简述类与对象的定义格式。
类的定义格式:
class 类名
{
public:
成员函数或数据成员的说明
private:
数据成员或成员函数的说明
};
各个成员函数的实现
对象的定义格式:类名 对象名;
分析构造函数和析构函数的作用。
构造函数:用于创建和初始化实例;析构函数:析构函数用于销毁类的实例。
简述基类和派生类关系。
任何一个类都可以派生出一个新类,派生类也可以再派生出新类,因此,基类和派生类是相对而言的。 基类与派生类之间的关系有:a:派生类是基类的具体化 b:派生类是基类定义的延续 c:派生类是基类的组合
什么是多态性?
C++中的多态分为静多态和动多态(也就是静态绑定和动态绑定两种现象),静动的区别主要在于这种绑定发生在编译期还是运行期,发生在编译期的是静态绑定,也就是静多态;发生在运行期的则是动态绑定,也就是动多态。
4:操作题
分别计算点,圆,圆柱体的面积和体积。
提示:先定义一个抽象基类CShape,然后利用单一继承依次派生点类CPoint,圆类CCircle,圆柱体类Ccylinder,利用多态性实现对异质数组的管理。
#includeiostream
#define PI 3.1415
using namespace std;
class CShape
{
public:
CShape(){};
virtual float area();
virtual float volume();
virtual void show();
};
class Point:public CShape
{
public:
Point(float a,float b);
virtual float area();
virtual float volume();
virtual void show();
private:
float point_area,point_volume,x,y;
};
class Circle:public CShape
{
public:
Circle(float a);
virtual float area();
virtual float volume();
virtual void show();
private:
float point_area,point_volume,R;
};
class Cylinder:public CShape
{
public:
Cylinder(f
显示全部