写过c#或则java的知道可以在类中定义静态或自读的字符串常量,但是在c++里面实现方法不一样,在c++的头文件里面直接:
static const std::string CONST="str";
这样是无法编译通过的,c++只允许像int类型的静态变量直接在头文件里面初始化,像string这种类型必须要在实现文件里面这样初始化:
const std::string A::CONST("str");
但是如果我们将上面这句加在头文件里面,回编译通过吗?如果我们使用的时候有多个地方包含这个头文件,那么就会出现多次对A::CONST的定义,因此编译通不过。如果只有一个地方包含,则是可以编译通过的。