在c++中调用初始化列表中的函数
Calling a Function in an Initialiser list in C++
我想知道以下是否安全,我需要将一些配置传递到我的类中的成员的初始化中。我声明了一个helper静态函数,该函数构建在成员初始化时传入的配置参数。
,具体:
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用于构造是安全的吗?其次,让它保持静态会更安全或更快吗?
谢谢。
是的,这很好,值得鼓励。
静态部分所做的唯一事情,假设它不在类本身中,并且看起来不在,是给它"内部"链接。这意味着没有人可以在它所在的。cpp文件之外调用它。基本上("翻译单元"是技术术语,但通常与单个。cpp/相同。o文件)
安全。
static
仅控制链接选项并降低符号的可见性。通常你定义为static
的任何功能,必须不可见/可用的模块之外。
相关文章:
- 如何在C++中泛化调用函数列表?
- 不带初始值设定项的构造函数列表,其中包含带有已删除构造函数的对象
- 具有可变参数的std ::函数列表如何工作
- 空向量的构造函数列表初始化
- C++ 中的构造函数列表
- 为什么初始化构造函数列表参数时会发生异常?
- 完美转发函数以构建函数列表类
- 如何在 c++ 中将函数列表应用于字符串
- 什么是结构开头的函数列表指针,称为 c++
- <函数列表>的多重定义
- 指向函数(列表)的指针
- 如何使用Boost预处理器获取类函数可访问的函数列表
- 避免使用容器调用函数列表
- 提取头文件中的函数列表
- 提升::p tr_vector 成员函数列表
- 完整的函数列表,来自c ++的MS Word命令
- 获取DLL中定义的函数列表
- 在运行时获取名称空间中的函数列表
- 如何在类构造函数列表中初始化结构
- 在c++中使用函数列表来调用async