c++补考题目(附答案)(5)

2018-12-19 21:54

试题1:从派生类看private成员和protected成员没有区别。(F) 试题2:析构函数可以被显式调用,也可以被系统自动调用。(F)

试题3:构造函数的访问属性可以是public的,但不可以是protected和private。(t) 试题4:基类的protected成员经过protected派生后,在派生类中仍为protected成员。(T) 试题5:构造函数和析构函数都不能为虚函数。(F)

试题6:从外部看类的private成员和protected成员没有区别。(T)

试题7:程序中不能直接调用构造函数,在创建对象时系统自动调用构造函数。(F) 试题8:在类定义中不允许对所定义的数据成员进行初始化。(T) 试题9:析构函数是一个函数体为空的成员函数。(F)

试题10:定义一个对象时,系统只为该对象的数据成员开辟内存空间,而成员函数是同类

对象共享的。( F)

试题1:定义在类体内的成员函数是内联函数,定义在类体外的成员函数不能是内联函数。

(F)

试题2:类中的成员函数是公有的,数据成员都是私有的。(F)

试题3:使用class定义类,其默认访问权限是public;使用struct定义的结构,其默认访问权限是private。(F) 简答题

试题1:什么是析构函数?它们有什么作用?

构造函数主要用于为对象分配空间,进行初始化。构造函数除了具有一般成员函数的特征外,还具有一些特殊的性质:(1)构造函数的名字必须与类名相同(2)构造函数可以有任意类型的参数,但不能指定返回类型。它有隐含的返回值,该值由系统内部使用。(3)构造函数是特殊的成员函数,函数体可写在类体内,也可写在类体外。(4)构造函数可以重载,即一个类中可以定义多个参数个数或参数类型不同的构造函数。(5)构造函数被声明为公有函数,但它不能像其他成员函数那样被显式地调用,它是在定义对象的同时被调用的。

析构函数也是一种特殊的成员函数。它执行与构造函数相反的操作,通常用于撤消对象时的一些清理任务,如释放分配给对象的内存空间等。析构函数有以下一些特点: (1)析构函数与构造函数名字相同,但它前面必须加一个波浪号(~); (2)析构函数没有参数,也没有返回值,而且不能重载。因此在一个类中只能有一个析构函数;(3)当撤消对象时,编译系统会自动地调用析构函数。

试题2:什么是函数的重载?有什么作用?

用同一个函数名定义多个函数、而这些函数的参数个数和参数类型可以不相同。

试题3:什么是构造函数?构造函数的作用是什么?

构造函数,是一种特殊的方法。主要用来在创建对象时初始化对象,即为对象成员变量赋初始值,总与new运算符一起使用在创建对象的语句中。

试题4:一个类根据访问权限一般包括几部分?这几部分有什么功能?

私有private权限,公共public权限,受保护protected权限三种。 公用的:既可以被本类中的成员函数所引用,也可以被类的作用域内的其他函数引用;私有的:只能被本类中的成员函数所引用;

受保护的:不能被类外访问,但能被派生类的成员函数引用。

分析类

程序中有错误的地方已用“①-⑤”指出,请分析并写出①到⑤五条出错原因。 #include class x { private: int a,b; public:

x(int a1=0, int b1=0){a=a1; b=b1;} int get1( ) {return a+b;} };

class y : private x { private: int c; public:

y(int a1, int b1, int c1) : x(a1,b1) {c=c1;}

int get2( ) ,return a+b+c;- ←(1) int get3( ) {return c;} };

void main( ) { x x1; y y1; ←(2) y y2(3,4,5);

cout << x1.a <<“\\n”;←(3) x1.get1( );

y1.get1( );←(4) y1.get3( );

cout << y2.c <<“\\n”;←(5) }

编写程序,定义抽象基类Shape(形状),由它派生出2个派生类: Circle(圆形)和Square (正方形),用函数ShowArea()分别显示各种图形的面积。 #include using namespace std; #define pi 3.14

class Shape//定义抽象基类,仅供继承用 {

virtual void printArea()=0;//纯虚函数 };

class Circle:Shape {

private: double radi; public:

Circle(double ra) {radi=ra;}

void printArea()

{cout<<\圆的面积为:\};

class Rectangle:Shape {

private:

double height; double length; public:

Rectangle(double hei,double len) {height=hei;length=len;} void printArea()

{cout<<\矩形的面积为:\};

void main() {

Circle cir(4);

Rectangle rect(5,4); cir.printArea(); rect.printArea(); }

从类Person中派生出一个教师类Teacher,新增的属性职称(Position),要求为教师类添加相应的方法,完成成员属性的赋值及成员方法,成员方法参照Person类,即输出教师的相关信息。

Person类的设计如下,请将空白处补充完整。 class Person {

public:

char Name[10]; int Age; public:

void Register(char *name,int age){ strcpy(Name,name); Age=age; }

void display(){

cout<设计一个圆类circle和一个桌子类table,另设计一个圆桌类roundtable,它是从前两个类派生的,要求输出一个圆桌的高度、面积和颜色等数据。

其中,circle类包含半径radius和求圆面积的成员函数getarea(),圆周率用PI 或3.14表示;table类包含桌子高度height和返回高度的成员函数getheight()。roundtable类继承所有上述

类的数据成员和成员函数,添加了数据成员桌子颜色color和相应的成员函数display() 函数,用于输出高度、面积和颜色。 #include #definePI3.14 class table {

public:

double heigh; char *color; public:

virtual void display()=0;//写成纯虚函数便于重载 };

class circle {

public:

double radius;//半径 public:

virtual void display()=0;//写成纯虚函数便于重载 };

class roundtable : public table,public circle {

public:

void iniroundtable(double h,double r,char *c) {

heigh=h; radius=r; color=c; }

void display() {

cout<<\ cout<<\

cout<<\PI*radius*radius<

protected:

double heigh,radius; char *color; };

int main() {

roundtable t1;

t1.iniroundtable(1,2,\t1.display(); return 0;

}

定义一个图形类,其中有保护类型的成员数据:都为单精度型,高度m_heigh,宽度m_width和面积m_area,一个公有的构造函数(不带任何参数的构造函数)。由该图形类建立两个派生类:矩形类和等腰三角形类。在每个派生类中都包含两个函数,一个是带两个参数的构造函数,即给高度和宽度初始化,一个是计算面积的函数Area(),分别用来计算矩形和等腰三角形的面积。提示: class pic { };

class recg:public pic { };

class tag:public pic { };

下列程序的运行结果为(21)。 class I { public:

I(int x) { value=x; } I operator++( ); I operator++(int);

void show( ) , cout<

I I ::operator++( ) { value++; return *this; }

I I ::operator++(int) { I temp(*this); value++; return temp; }

void main( ) { I n(20); ++(++n); n.show( ); }

下列程序的运行结果为(5 10)。 class B { int a,b; public:

B(int aa=0, int bb=0) { a=aa; b=bb; } friend void operator++(B &b );


c++补考题目(附答案)(5).doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:许可证有效期内辐射安全与防护工作总结报告

相关阅读
本类排行
× 注册会员免费下载(下载后可以自由复制和排版)

马上注册会员

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: