笑谈人生
摘要: 某程序员的QQ签名:为API生,为框架死,为debug奋斗一辈子,吃符号亏,上大小写的当,最后死在需求上。
某编辑也来造句,为本报编辑写一条:为标题生,为版式死,为信息量奋斗一辈子,吃缺稿的亏,上错别字的当,最后死在宣宣的封口令上。
阅读全文
posted @
2012-06-04 10:57 yycmmc 阅读(159) |
评论 (0) 编辑
超前引用与命名空间
摘要: 一般情况下,类型要在使用前定义,但是在一些特殊情况下,这种要求无法满足,例如两个类相互包含, 即两个类互相使用对方提供的方法。 更一般的情况,类A和类B需要彼此互相引用,这样必然有一个类会先被定义,而另外一个类后被定义,这样在先被定义的类引用后被定义的类的时候,就导致了所谓的超前引用。
使用命名空间的目的是对标识符的名称进行本地化,以避免命名冲突。在C++中,变量、函数和类都是大量存在的。如果没有命名空间,这些变量、函数、类的名称将都存在于全局命名空间中,会导致很多冲突。比如,如果我们在自己的程序中定义了一个函数toupper(),这将重写标准库中的toupper()函数,这是因为这两个函数都是位于全局命名空间中的。命名冲突还会发生在一个程序中使用两个或者更多的第三方库的情况中。此时,很有可能,其中一个库中的名称和另外一个库中的名称是相同的,这样就冲突了。这种情况会经常发生在类的名称上。比如,我们在自己的程序中定义了一个Stack类,而我们程序中使用的某个库中也可能定义了一个同名的类,此时名称就冲突了。namespace关键字的出现就是针对这种问题的。
阅读全文
posted @
2012-06-04 10:11 yycmmc 阅读(1017) |
评论 (0) 编辑