考虑以下一段代码,本质上是迈尔单身的一个例子(希望如此)
static const std::string& foo() // Line 1
{
static std::string str("foo");
return str;
}
第1行中提到的static关键字是否没有意义?如果可以,为什么?
答案 0 :(得分:8)
第1行中提到的static关键字是否没有意义?如果可以,为什么?
这不是没有意义的,是否需要它取决于您的情况。 C ++中的static
在不同的上下文中具有不同的含义,在这种情况下,它使此功能仅在当前编译单元上可用。使用C ++的现代方法-将函数放入匿名名称空间。