【C++深入剖析】委托设计

C++深入剖析-----------------委托设计

程序代码

【C++深入剖析】委托设计

结论一:图(一)实现的功能都是由图(二)提供的类来完成的

结论二: 两者的构造函数和析构函数不存在任何关系

结论三:采用指针的方式, 这样左边对外接口可以不发生改变。 如果要改变某个功能只需要改变指针所对应的类


模式二: 数据共享的模式

【C++深入剖析】委托设计

a b c 都是class String类型  私有指针StringRep指向了同一片区域 。这样a b c就会共享一份数据。  n表示计数,这主要是用来记录被引用的个数,一旦引用个数为0的时候,自动调用析构函数


扩展:   copy_on_write  当a想要改变共享数据的时候,那就就会复制一份,a主要修改被复制的这一份