摘要: 所谓智能指针是“行为像指针”的对象,并提供指针没有的机能。 真实指针做的很好的一件事是,支持隐式转换。Derived class指针可以隐式转换为base class指针。指向non-const的对象的指针可以转换为指向const对象。下面是发生于三层继承体系的一些转换: class Top{...}; class Middle: public Top{...}; ... 阅读全文
posted @ 2012-02-15 22:41 lidan 阅读(479) 评论(0) 推荐(0) 编辑
摘要: template是节省时间和避免重复代码的一个奇妙方法。class template的成员函数只有在被使用时才被暗中具现化。function templates有类似的诉求。 但是如果你不小心,使用templates可能导致代码膨胀(code bloat):其二进制代码带着重复(或几乎重复)的代码、数据、或两者。其结果可能源码看起来合身整齐,但目标码却不是那么回事。你需要知道如何避免这样的... 阅读全文
posted @ 2012-02-15 20:50 lidan 阅读(505) 评论(0) 推荐(0) 编辑
摘要: 我们需要一个程序,传送信息到不同的公司去。信息要不译成密码,要不就是未加工的文字。如果编译期间我们有足够信息来决定哪一个信息传至那一家公司,就可以采用基于template的解法: class CompanyA{ public: void sendCleartext(const std::string& msg); void sendEncrypt... 阅读全文
posted @ 2012-02-15 15:02 lidan 阅读(462) 评论(0) 推荐(0) 编辑