我需要访问由另一个进程创建的共享内存段。在Boost文档中,我找不到如何初始化成员变量。由于所有示例都在int main()中解释,因此不显示成员变量的使用。 我正在使用托管的Windows共享内存和放大器我需要它是一个成员变量与构造函数初始化。下面我展示了它是如何作为局部变量完成的,
boost::interprocess::managed_windows_shared_memory shm(boost::interprocess::open_only, "ShrdMemKey");
但如果我将其声明为成员变量,如何在c'tor中初始化它。
class ShrdMem
{
private:
boost::interprocess::managed_windows_shared_memory shm;
public:
ShrdMem();
};
ShrdMem::ShrdMem()
{
// Need shm to be initialized in c'tor.
}
谢谢。
答案 0 :(得分:2)
C ++具有为成员变量提供构造函数参数的语法。
ShrdMem::ShrdMem()
: shm(boost::interprocess::open_only, "ShrdMemKey")
{
// Here, shm is initialised according to the parameters passed above
}
这种情况非常方便。如果您需要初始化多个成员,只需用逗号分隔它们。