我想知道以下是否安全,我需要将一些配置传递给我班级成员的初始化。我声明了一个辅助静态函数,它构建了在初始化成员时传入的配置arg。
所以,具体来说:
a.h:
class A
{
Something d_member;
}
a.cpp
static Thing makeThing()
{
Thing x;
x.setValue(4);
return x;
}
A::A() : d_member(makeThing()) {};
因此,使用该辅助函数暂时构建我的Thing进行构造是否安全。其次,是否让它更安全或更快才能保持静止?
感谢。
答案 0 :(得分:4)
是的,这很好并且值得鼓励。
静态部分唯一做的事情,假设它不属于类本身,而且似乎不是,就是给它“内部”联系。这意味着没有人可以在.cpp文件之外调用它...基本上(“翻译单位”是技术术语,但通常与单个.cpp / .o文件相同)
答案 1 :(得分:1)
这是安全的。
static
仅控制链接选项并降低符号的可见性。通常,您将任何在模块外部不可见/可用的函数定义为static
。