文档库 最新最全的文档下载
当前位置:文档库 › 6~C++基础概念题

6~C++基础概念题

第六章

1.C++中所谓多态性是指()。

A. 不同的对象调用不同名称的函数

B. 不同的对象调用相同名称的函数

C. 一个对象调用不同名称的函数

D. 一个对象调用不同名称的对象

2.有关多态性说法不正确的是()。

A. C++语言的多态性分为编译时的多态性和运行时的多态性

B. 编译时的多态性可通过函数重载实现

C. 运行时的多态性可通过函数重载实现

D. 实现运行时多态性的机制称为动态多态性

3.以下()是正确的纯虚函数定义。

A. virtual void tt()=0

B. void tt(int)=0

C. virtual void tt(int)

D. virtual void tt(int){}

4.C++类体系中,能被派生类继承的是()。

A.构造函数B.虚函数C.析构函数D.友元函数

5.以下关于抽象类的说法正确的是()。

A.至少有一个虚函数的类就称为抽象类

B. 抽象类可以被实例化

C. 抽象类至少有一个纯虚函数

D. 抽象类不能被继承

6.对于下面两个类的描述正确的为()。

A. Animal为抽象类,Brid也为抽象类

B. Animal为抽象类,所有的成员函数均为纯虚函数

C. Brid类不包含纯虚函数,因此不是抽象类

D. 若有基类指针Animal* p= new Fish(“goldenfish”); 执行语句p->sleep();

则调用Animal::sleep()

7.关于派生类,以下理解正确的为()。

A.派生类从基类继承全部数据成员和部分成员函数

B.派生类是对基类的扩展,可以新增数据成员与成员函数

C.派生类中只能使用基类的成员函数,不能对其进行重新定义

D.派生类可以使用基类的成员,基类也可以使用派生类成员

8.分析以下程序的执行结果。

#include

#include

using namespace std;

class Animal{

protected:

string name ;

public:

Animal(string n = "无名"):name(n){ }

virtual void shout()

{ cout<< name<< endl; }

};

class Cat: public Animal{

int year;

public:

Cat( ) :Animal("无名"), year(0){ }

Cat(string n, int y):Animal(n)

{ year = y>0 ? y:0; }

void shout();

};

void Cat::shout(){

string result = name;

result += ":miao miao miao";

cout<< result << endl;

}

class Dog: public Animal{

int shoutNum;

public:

Dog(string n, int y):Animal(n)

{ shoutNum = y>0 ? y:0; }

void shout();

};

void Dog::shout(){

string result = name;

for(int i = 0; i < shoutNum; i++)

result += ":汪";

cout<< result << endl;

}

int main(){

Animal a;

Cat c("Garfield",3);

Dog d( "阿福",2);

Animal* pA[3] ={&a, &c,&d};

for(int i=0; i<3; i++)

pA[i]->shout();

a = c;

a.shout();

a = d;

a.shout();

return 0;

}

相关文档
相关文档 最新文档