版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本书涉及的大多数内容都是编程的指导准则。这些准则虽是重要的,但是程序员不能单靠准则生活。有一个很早以前的卡通片叫做 “菲利猫” (Felix the Cat),菲利猫无论何时遇到困难,它都会拿它的 trick 包。如果一个卡通角色都有一个 trick 包,那么 C++ 程序员就更应该有了。把这一章想成你的 trick 包的启动器。
当设计 C++ 软件时,总会再三地受到一些问题的困扰。你如何让构造函数和非成员函数具有虚拟函数的特点?你如何限制一个类的实例的数量?你如何防止在堆中建立对象呢?你如何又能确保把对象建立在堆中呢?其它一些类的成员函数无论何时被调用,你如何能建立一个对象并让它自动地完成一些操作?你如何能让不同的对象共享数据结构,而让每个使用者以为它们每一个都拥有自己的拷贝?你如何区分 operator[] 的读操作和写操作?你如何建立一个虚函数,其行为特性依赖于不同对象的动态类型?
所有这些问题 (还有更多) 都在本章得到解答,在本章里我叙述的都是 C++ 程序员普遍遇到的问题,且解决方法也是已被证实了的。我把这些解决方法叫做技巧,不过当它们以程式化的风格 (stylized fashion) 被归档时,也被做为 idiom 和 pattern。不管你把它称做什么,在你日复一日地从事软件开发工作时,下面这些信息都将使你受益。它会使你相信无论你做什么,总可以用 C++ 来完成它。