Item 3: 只要可能就用 const 关于 const 的一件美妙的事情是它允许你指定一种语义上的约束:一个特定的对象不应该被修改。而编译器将执行这一约束。它允许你通知编译器和其他程序员,某个值应
(接上篇) 如果你掀开编译器的盖头偷看一下,你会发现用指针实现引用是非常典型的做法,所以以引用传递某物实际上通常意味着传递一个指针。由此可以得出结论,如果你有一个内建类型的对象(例如,一个 int),
Item 20: 用传引用给 const(pass-by-reference-to-const)取代传值(pass-by-value) 缺省情况下,C++ 以传值方式将对象传入或传出函数(这是一个从
Item 16: 使用相同形式的 new 和 delete 下面这段代码有什么问题? std::string *stringArray = new std::string; ... delete st
已知 MsgSender 针对 CompanyZ 被特化,再次考虑 derived class(派生类)LoggingMsgSender: template<typename Company&
iterator_traits 通过两部分实现这一点。首先,它强制要求任何 user-defined iterator(用户定义迭代器)类型必须包含一个名为 iterator_category
iterator_traits 通过两部分实现这一点。首先,它强制要求任何 user-defined iterator(用户定义迭代器)类型必须包含一个名为 iterator_category
jiuItem 43: 了解如何访问 templatized base classes(模板化基类)中的名字 作者: 译者: 发布: 假设我们要写一个应用程序,它可以把消息传送到几个不同的公司去。消息
Item 47: 为类型信息使用 traits classes(特征类) 作者: 译者: 发布: STL 主要是由 containers(容器),iterators(迭代器)和 alg
Item 37: 绝不要重定义一个函数的 inherited default parameter value(通过继承得到的缺省参数值) 作者: 译者: 发布: 我们直接着手简化这个话题。只有两种函数