如何初始化";Boost进程间管理的windows共享内存“;成员变量?

如何初始化";Boost进程间管理的windows共享内存“;成员变量?,boost,Boost,我需要访问另一个进程创建的共享内存段。在Boost文档中,我找不到如何初始化成员变量。由于所有示例都在int main()中进行了解释,因此没有显示成员变量的用法。 我使用的是托管windows共享内存&我需要它是构造函数中初始化的成员变量。下面我展示了它作为局部变量是如何实现的 boost::interprocess::managed_windows_shared_memory shm(boost::interprocess::open_only, "ShrdMemKey"); 但是如果我将

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

谢谢。

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

ShrdMem::ShrdMem()
  : shm(boost::interprocess::open_only, "ShrdMemKey")
{
  // Here, shm is initialised according to the parameters passed above
}
在这种情况下,它非常方便。如果需要初始化多个成员,只需用逗号分隔它们