![](https://img-blog.csdnimg.cn/20201014180756754.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
C++
文章平均质量分 70
rcs_china
这个作者很懒,什么都没留下…
展开
-
空指针
<br />什么是空指针:<br />《c++的设计和演化》中有这么一段描述空指针:<br />一个能求出0值的常量表达式被转换为一个指针,通常称为空指针。这个值产生的指针保证能与任何对象或函数指针相区分。<br />但AMR进一步警告说:空指针不一定用与整数0同样的二进制模式表示。<br /> <br />我的理解是这意味0能表示空指针,但反过来则不成立,即空指针不一定要是0,比如用 (2-2), ~-1。<br />(演化中进一步又说实际上用它们给指针赋值却是个类型错误,但我用codelite编译是通过原创 2011-04-02 22:30:00 · 360 阅读 · 0 评论 -
名字隐藏
C++的类是名字空间吗?显然不是。但C++的类某种意义上又是名字空间,因为对名字空间可以做的操作都能够在同样意义上应用在类上,除非某个操作是类明确禁止的。这一段是摘自《D&R》。这也意味着对于基类和子类,两个是不同的名字空间。而且可以理解成子类是嵌套在基类的名字空间内的。这样如果子类的成员将遮蔽基类具有同样名字的成员。这就是说基类的名字被子类隐藏了。这样在外面如果要通过子类对象引用基类被隐藏的名字就需要显式地用域作用符来指定。比如下面这样:class Base{public: void f(){cou原创 2011-04-04 00:15:00 · 553 阅读 · 0 评论