更推荐哪种方式来声明字符串 const?
- 是在文件范围内声明全局变量。
- 将其声明为类的全局。
该变量将仅在类成员函数中使用。我倾向于觉得 2 更好,因为它仅特定于类成员函数。
A.cpp
---------------------
static const std::string hello_str = "Hello";
void A::print()
{
std::cout << hello_str;
}
(或者)
A.h
---------------------
class A{
public:
static const std::string hello_str;
void print();
}
A.cpp
---------------------
const std::string A::hello_str = "Hello";
void A::print()
{
std::cout << A::hello_str;
}
编辑-1:
让我说 hello_str 的内容可以改变。例如。每当他对文件进行更改时,开发人员都会手动更新该字符串。
在这种情况下,将变量初始化保留在函数中是否有意义?用户更新字符串可能不清楚/不明显。如果它对文件 (1) 或类 (2) 保持全局,则其他开发人员可以“识别”并修改此字符串。
鉴于上述用例,您仍然建议使用返回字符串的函数吗?或者我可以使用类级别的静态变量(带有私有访问说明符)吗?