在
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:全局变量和局部变量有什么区别?实怎么实现的?操作系统和编译器是怎么