C++知识总结(16)

来源:互联网 发布:debian mysql 编辑:程序博客网 时间:2024/06/05 23:43

71 mutable关键字的作用

mutalbe的中文意思是“可变的,易变的”,跟constant(既C++中的const)是反义词。

C++中,mutable也是为了突破const的限制而设置的。被mutable修饰的变量,将永远处于可变的状态,即使在一个const函数中。

我们知道,如果类的成员函数不会改变对象的状态,那么这个成员函数一般会声明成const的。但是,有些时候,我们需要在const的函数里面修改一些跟类状态无关的数据成员,那么这个数据成员就应该被mutalbe来修饰

72 C++是怎么实现代码复用性的?

模板,将不同的对象的类型作为模板参数。

使用宏,将不同类型的的对象作为宏参数。

 对不同的对象做一次抽象封装,提取公共的基类,在基类中抽象虚函数。

73 对象间是怎样实现数据的共享的?   

通过类的静态成员变量来实现对象间的数据共享。静态成员变量占有自己独立的空间不为某个对象所私有。

74 评价一下继承机制

1、类继承是在编译时刻静态定义的,且可直接使用,  

2、类继承可以较方便地改变父类的实现。  

缺点:  

1、因为继承在编译时刻就定义了,所以无法在运行时刻改变从父类继承的实现  

2、父类通常至少定义了子类的部分行为,父类的任何改变都可能影响子类的行为  

3、如果继承下来的实现不适合解决新的问题,则父类必须重写或被其他更适合的类替换。这种依赖关系限制了灵活性并最终限制了复用性。

75 public继承 protected继承 private继承的区别

 

public

protected

private

公有继承

public

protected

不可见

私有继承

private

private

不可见

保护继承

protected

protected

不可见