我需要访问另一个进程创建的共享内存段。在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
}
它在这种情况下非常方便。如果需要初始化多个成员,只需用逗号将它们隔开即可。