首页 > 代码库 > 代理模式 + Effective C++ 第一章笔记
代理模式 + Effective C++ 第一章笔记
代理模式(Proxy):为其他对象提供一种代理以控制这个对象的访问。
应用:
(1);远程代理,为一个对象在不同的地址空间提供局部代表。这样可以隐藏一个对象存在于不同地址空间的事实
(2);虚拟代理,根据需要创建开销大的对象。通过虚拟代理存放实例化需要很长时间的真是对象。
(3);安全代理,用来控制真是对象访问时的权限。
(4);智能指针,当调用真实的对象时,代理处理另外一些事。
Effective C++:
1:确定对象被使用前已经被初始化
(1),为内置类型进行手工初始化,因为C++不保证初始化他们
(2),够函数最好使用成员初始列(member initialization list),而不要在构造函数内使用赋值操作(assignment)。初始列列出的成员变量,期排列次序应该和他们在class中的生命次序相同。
(3),为免除“跨编译大暖初始化次序”问题,用local static 对象替换non-local static 对象(单例模式)
2:构造/析构/赋值运算
(1),编译器可以案子为class创建default构造函数、copy构造函数、copy assignment操作符,以及析构函数
(2),为驳回编译器自动提供的技能,可将相应的成员函数声明为private并且不予实现。使用像Uncopyable这样的base class也是一种做法。
class Uncopyable { protected: Uncopyable() {} ~Uncopyable() {} private: Uncopyable(const Uncopyable&); Uncopyable& operate=(const Uncopyable&); };
(3),polymorphic base classes 应该声明一个virtual析构函数。如果class带有任何virtual函数,它就应该拥有一个virtual析构函数
(4),Classes 的设计目的如果不是作为base classes使用,或不是为了具备多态性(polymorphically),就不应该声明virtual 析构函数。
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。