![](https://img-blog.csdnimg.cn/20201014180756926.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
more effective C++
郭衍清
这个作者很懒,什么都没留下…
展开
-
条款3-4:绝对不要以多态的方式处理数组与default constructor
条款3:绝对不要以多态的方式处理数组class BST{ ...... };class BalancedBST:public BST{.......};void printBST(ostream& s,const BST array[ ],int num){ for(int i = 0;i s}当你传入BST的数组是没有什么问题的。现在传入B原创 2012-07-15 16:55:44 · 554 阅读 · 0 评论 -
基础议题 条款1:仔细区别pointer和reference
1.首先我们需要认识到没有所谓的null reference。所以如果你有一个变量,其目的用来指向一个对象,但是也有可能不指向任何对象,那么你应该用pointer,因为你可以将pointer设置为null。换句话说,如果你不允许变量为null,那么使用reference。具有以下行为的程序员应该隔离: char *pc = 0; char& rc = pc;这样编译器可能会产生原创 2012-07-15 16:19:50 · 506 阅读 · 0 评论 -
条款2:最好使用C++转型操作符
C++提供4种转型1.static_cast 他基本上具有和旧式c语言一样的功能,一样的限制,如不可以将struct转换为int,不可以将int转换为pointer等。 使用方法: static_cast(expression)2.const_cast 除去常量性质3.dynamic_cast 用于继承体系的转型,不是继承体系则出现错误。主要是用于将指原创 2012-07-15 16:29:21 · 364 阅读 · 0 评论