如何初始化“Boost进程间托管窗口共享内存”成员变量?

时间:2013-06-24 09:24:00

标签: boost

我需要访问由另一个进程创建的共享内存段。在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.
}

谢谢。

1 个答案:

答案 0 :(得分:2)

C ++具有为成员变量提供构造函数参数的语法。

ShrdMem::ShrdMem()
  : shm(boost::interprocess::open_only, "ShrdMemKey")
{
  // Here, shm is initialised according to the parameters passed above
}

这种情况非常方便。如果您需要初始化多个成员,只需用逗号分隔它们。