灯火互联
管理员
管理员
  • 注册日期2011-07-27
  • 发帖数41778
  • QQ
  • 火币41290枚
  • 粉丝1086
  • 关注100
  • 终身成就奖
  • 最爱沙发
  • 忠实会员
  • 灌水天才奖
  • 贴图大师奖
  • 原创先锋奖
  • 特殊贡献奖
  • 宣传大使奖
  • 优秀斑竹奖
  • 社区明星
阅读:3112回复:0

[C++语言书籍]C++工程实践经验谈.pdf版

楼主#
更多 发布于:2012-08-18 13:43


20120712033525211.png[设为封面] [删除]

C++工程实践经验谈
内容一览
1 慎用匿名namespace . 2
2 不要重载全局 ::operator new() 6
3 采用有利于版本管理的代码格式 . 13
4 二进制兼容性 . . 23
5 避免使用虚函数作为库的接口 . . 28
6 动态库的接口的推荐做法 . . 36
7 以 boost::function和boost:bind 取代虚函数 . . 40
8 带符号整数的除法与余数 . . 47
9 用异或来交换变量是错误的 55
10 在单元测试中 mock 系统调用 . . 62
11 iostream 的用途与局限 67
12 值语义与数据抽象 96
13 再探 std:tring . 114
14 用 STL algorithm 秒杀几道算法面试题 122
1 慎用匿名namespace
匿名namespace (anonymous namespace或称unnamed namespace)是C++语
言的一项非常有用的功能,其主要目的是让该 namespace 中的成员(变量或函
数)具有独一无二的全局名称,避免名字碰撞 (name collisions)。一般在编写 .cpp
文件时,如果需要写一些小的 helper 函数,我们常常会放到匿名 namespace 里。
muduo 0.1.7 中的 muduo/base/Date.cc 和 muduo/base/Thread.cc 等处就用到了匿名
namespace。
我最近在工作中遇到并重新思考了这一问题,发现匿名 namespace 并不是多多益善。
1.1 C 语言的static 关键字的两种用法
C 语言的 static关键字有两种用途:
1. 用于函数内部修饰变量,即函数内的静态变量。这种变量的生存期长于该函数,
使得函数具有一定的“状态”。使用静态变量的函数一般是不可重入的,也不是
线程安全的,比如strtok(3)。
2. 用在文件级别(函数体之外),修饰变量或函数,表示该变量或函数只在本文件
可见,其他文件看不到也访问不到该变量或函数。专业的说法叫“具有internal
linkage”(简言之:不暴露给别的translation unit)。
C 语言的这两种用法很明确,一般也不容易混淆。
资源:
115网盘附件下载:
C++工程实践经验谈.pdf版.rar (933.86KB)


喜欢0 评分0
游客

返回顶部