background image

class

 

base{

private:

int

 

a;

protected:

int

 

b;

public:

int

 

c;

};

class

 

sub1:public

 

base

 

{…};

class

 

sub2:private

 

base{…};

说明在 base,sub1,sub2 中所能取用的 data members 各为何.并指

出 这 些 data members 的 access mode(private, protected 或

public).

Answer:

class

 

data

 

members

 

access

 

mode

base

 

a

 

private

b

 

protected

c

 

public

sub1

b

 

protected

c

 

public

sub2

b

 

private

c

 

private

 

(polymorphism)

面向对象程设计的核心观念之一就是多态--它使一群类似的行为的同

名称的方法, 但各对象可依适合自己所需的方式建构此同名动作的实

行 细 节 , C++ 多 态 的 关 键 在 于 所 谓 的 虚 函 数 这 一 类 的 函 数 。

(virtual

 

function)

透过虚拟函数, 衍生类可重新定义基类的成员函数, 若想在 C++程式

中建立虚拟函数(然後才能实行多态), 只需利用 virtual 关键字声明函

(

)

virtual

 

void

 

Display();

针对共享相同基类的那些对象, 可有较一致的使用态度, 例如, 你可能

定义一个名为 Shape 且带有一个 Draw 虚拟成员函数的基类, 然后从

它派生了 Circle 类和 Square 类, 而且它们各自带有自己的 Draw 成

员函数.从这些类派生建立的每个对象都可呼叫 Draw 成员函数; 但是

编译程式可确保各自应呼叫那个版本的 Draw 函数.是基类的还是派

重 要 观 念 :   指 向 父 类 的 指 针 也 可 用 来 指 向 子 类 别

include

 

iostream.h>