第94行 df::program_options_lite::Options opts;
在360浏览器c++收藏夹 c++命名空间有详细解释
::是一个新符号,称为域解析操作符,在C++中用来指明要使用的命名空间。
如果一个文件下有两个相同名字的变量会发生冲突,但如果这两个变量在两个不同的命名空间中,就不会有冲突:
namespace Li{
//小李定义的变量
file a = 0;
}
namespace Wang{
//小王定义的变量
file a = 0;
}
这样两个变量都可成功编译
命名空间里面可以包含变量、函数、类、typedef、#define 等,最后由{ }包围。
使用变量、函数时要指明它们所在的命名空间。
Li::a = 1; //指明了要是用命名空间Li
cout << a << endl;
df::program_options_lite::Options opts
即这里的df和program_options_lite都是命名空间,program_options_lite是df中的命名空间。program_options_lite.h中定义了与文件解析有关的一些类和一些全局函数。
Options opts = struct Options opts 省略了struct,options是定义的一个结构体,opts是变量名