练习18.12
将你为之前各章节练习编写的程序放置在各自的命名空间中。也就是说,命名空间chapter15包含Query程序的代码,命名空间chapter10包含TextQuery的代码;使用这种结构重新编译Query代码实例。
解答:
其实看过这章内容,就会觉得这是件很简单的事情。
代码……略过吧,太多了。
练习18.13
什么时候应该使用未命名的命名空间?
解答:
如果你之前只用过static声明,那么未命名的命名空间就和其用法是一样的。
将需要的东西包含起来,只能在当前文件中有效,无法跨越文件使用。有点类似封装的意思。
练习18.14
假设下面operator*声明的是嵌套的命名空间mathLib::MatrixLib的一个成员:
namespace mathLib{
namespace MatrixLib{
class matrix { /* ... */};
matrix operator* (const matrix&, const matrix &);
}
}
请问你应该如何在全局作用域中声明该运算符。
解答:
mathLib::MatrixLib::matrix mathLib::MatrixLib::operator*(const mathLib::MatrixLib::matrix&, const mathLib::MatrixLib::matrix&);