background image

C++中,结构是特殊的类。

 

class 是从 struct 发展而来的。之所以将 struct 和 class

 

都保留,是因为:

1、提出 class

 

是为了强调一种概念。

2、保留 struct

 

是为了照顾到大多数人的习惯。

struct 和 class

 

是有区别的。  

struct 保证成员按照声明顺序在内存中存储。class

 

不保证等等

 

而它们都可以继承,实现多态等。但也有少许区别。比如:

struct A { }  

class B : A{ }; //private

 

继承

struct C : B{ }  

//public

 

继承

这是由于

class 默认是 private,struct 默认是 public  

一般说来,

struct 和 class

 

可以换用(当然要注意一些语法问题)。

struct 更适合看成是一个数据结构的实现体,

class 更适合看成是一个对象的实现体,
对私有成员进行保护,还提供与外界的接口。

从习惯上更喜欢用

class。

05:请讲一讲析构函数和虚函数的用法和作用?

:

“ ”

置于 ~ 是析构函数;析构函数因使用

"~"符号(逻辑非运算符),表示它为

 

腻构造函数,加上类名称来定义。
;析构函数也是特殊的类成员函数,它没有返回类型,没有参数,不能随意调

 

用,也没有重载,只有在类对象的生命期结束的时候,由系统自动调用。
有适放内存空间的做用

虚函数是

C++

 

多态的一种表现

例如:子类继承了父类的一个函数(方法),而我们把父类的指针指向子类,
则必须把父类的该函数(方法)设为

virturl(虚函数)  

 

使用虚函数,我们可以灵活的进行动态绑定,当然是以一定的开销为代价。

如果父类的函数(方法)根本没有必要或者无法实现,完全要依赖子类去实现
的话,可以把此函数(方法)设为

virturl 函数名=0 

 

我们把这样的函数(方法)称为纯虚函数。
如果一个类包含了纯虚函数,称此类为抽象类

Q6:全局变量和局部变量有什么区别?实怎么实现的?操作系统和编译器是怎么