类和对象作业题分析详解(作业六)

xiaoxiao2021-02-28  25

1. 下列关于类的构造函数和析构函数的叙述中,不正确的是________。

A.类的析构函数可以重载

B. 类的构造函数可以重载

C.定义一个类时,可以不显式定义构造函数

D. 定义一个类时,可以不显式定义析构函数

分析:析构函数不返回任何值,没有函数类型,也没有函数参数。由于没有函数参数,因此它不能被重载。一个类可以有多个构造函数,但只能有一个析构函数。

2. 下列说明中有关结构体定义的正确说法是________。

A.不能指定其成员的权限 B.不能包含成员函数

C.其成员缺省的权限为公有的 D.不能包含对象成员

分析:C语言中的结构体只能包含数据,而在C++中的结构体实际上就是类,能包含数据也能包含函数,其成员也可指定公有、私有。区别在于其成员未声明权限时,默认权限是public,结构体内也可以包括对象成员。3. 一个类的析构函数________。

A.是唯一的  B.允许重载   C.至多可有两个   D只能是缺省的

4. 下列有关类和对象的说法中,正确的是________。

A.类与对象没有区别

B.要为类和对象分配存储空间

C.对象是类的实例,为对象分配存储空间而不为类分配存储空间

D.类是对象的实例,为类分配存储空间而不为对象分配存储空间

分析:略。

5. 假定AB为一个类的类名,则该类的拷贝构造函数的函数原型是        

A.AB &(AB X);   B.AB (AB X)   C.AB (AB & X)  D.AB (AB * X)

分析:拷贝构造函数,又称复制构造函数,是一种特殊的构造函数,它由编译器调用来完成一些基于同一类的其他对象的构建及初始化。其唯一的形参必须是引用,但并不限制为const,一般普遍的会加上const限制。

6. 下列各类函数中,         不是类的成员函数。

A.构造函数

B.析构函数

C.友元函数

D.拷贝构造函数

7. 一个类的友元函数能够访问该类的          

A.私有成员

B.保护成员

C.公有成员

D.所有成员

8. 下述静态成员的特性中,错误的是          

A.说明静态数据成员时前边要加修饰符static

B.静态数据成员要在类体外重新定义并进行初始化

C.引用静态数据成员时,要在静态数据成员前加类名和作用域运算符

D.静态数据成员不是所有对象共有的

分析:静态数据成员是被类的所有对象共享,它不属于类的任何一个对象,它的作用域是类范围。静态数据成员在每个类对象中并不占有存储空间,它只是每个类中分配有存储空间,供所有对象公用。静态数据成员的值对每个对象都一样,但它的值可以被任何一个对象更新,从而实现了同一类的不同对象之间的数据共享。

9. 如下程序定义了一个时钟类:时钟类具有时、分、秒属性,具有设置和显示时间属性的公共接口函数,请根据自己的理解在________处填上相应的语句,并写出其输出结果_______________。

#include <iostream.h>

class clock

{

public:

void SetTime(int newh, int newm, int news);

void ShowTime()

{

cout<<Hour<<":"<<Minute<<":"<<Second<<"\n";

}

private:

int Hour, Minute, Second;

};

void  clock::SetTime(int newh = 0, int newm = 0, int news = 0)

{

_Hour=newh______________;

_Minute=newm______________;

_Second=news______________;

}

void main()

{

clock myclock;

cout<<"first time set and output:\n";

myclock.SetTime();

myclock.ShowTime();

cout<<"second time set and output:\n";

clock  _*temp=&myclock______________;

temp->SetTime(12, 56);

temp->ShowTime();

cout<<"third time set and output:\n";

temp->SetTime(8, 30, 30);

temp->ShowTime();

}

输出结果:

first time set and output:

0:0:0

second time set and output:

12:56:0

third time set and output:

8:30:30

10.读程序,写结果。

#include <iostream.h> class Point { public: Point(int xx = 0, int yy = 0) { X = xx; Y = yy; cout<<"调用构造函数\n"; } Point(Point &p); int GetX() { return X; } int GetY() { return Y; } private: int X,Y; }; Point::Point(Point &p) { X=p.X; Y=p.Y; cout<<"调用拷贝构造函数\n"; } void main() { Point A(3,4); Point B(A); cout<<B.GetX()<<endl; }

输出结果:

调用构造函数

调用拷贝构造函数

3

转载请注明原文地址: https://www.6miu.com/read-1450220.html

最新回复(0)