常见错误22: 静态连接类型和外部连接类型----读书笔记《c++ gotchas》...
时间:2010-08-07 来源:lzueclipse
根本没有本条款名称描述的这类东西。
但是经验丰富的C++软件工程师却常常写出好像把连接类型饰词应用于类型的声明语句:
static struct Repository {
//…
}repository;//repository是静态连接的
Repository backUp;//不是静态连接
连接类型修饰词总是绑定到对象或函数,而不是类型。
如此说来还是写得清楚些好:
class Repository {
//…
};
static Repository respository;
static Repository backUp;
较之于使用连接类型饰词static,匿名名字空间可能是更好的选择:
namespace {
Respository respository;
Respository backUp;
}
名字respository和backUp现在有了外部连接类型,从而比static修饰的静态连接类型在更多地方大显身手,
而且,就像静态对象一样,在当前编译单元(translation unit)以外的地方是不可访问的。
相关阅读 更多 +