gpt4 book ai didi

c++ - 最佳实践 - 应该在哪里定义类的 const 数据

转载 作者:行者123 更新时间:2023-12-01 14:13:02 27 4
gpt4 key购买 nike

我写了一个定义和使用 const string 的类(此字符串定义路径或路径的一部分)我应该在哪里定义它:在 cpp 或 h 中?它应该是类(class)的一部分吗?目前此数据仅在内部成员函数中使用。哪个选项更好?

myClass.h
// const std::string PATH = "Common\\Data\\input.txt" (1)
class MyClass
{
public:
// const std::string m_path = "Common\\Data\\input.txt" (2)
private:
// const std::string m_path = "Common\\Data\\input.txt" (3)
}
myClass.cpp
// const std::string PATH = "Common\\Data\\input.txt"(4)

最佳答案

如果这个常量只在一个类中使用,并且它对类的所有实例都是相同的,你可以在unnamed namespace中定义它。在你的 .cpp 文件中:

namespace {
const std::string PATH = "Common\\Data\\input.txt";
}

这样,它将只能在单个 .cpp 文件中访问,并且如果任何其他文件定义了类似的变量,则在链接期间不会导致任何潜在的名称冲突。

这种方法的主要目标是使用尽可能小的定义范围来减少冗余的隐式依赖。例如,如果此常量发生更改,您的类的客户端将不必重新编译。

关于c++ - 最佳实践 - 应该在哪里定义类的 const 数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/63326876/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com