如何在C++中定义静态成员结构

How to define a static member struct in C++

本文关键字:定义 静态成员 结构 C++      更新时间:2023-10-16

我有一个具有静态成员结构的类

class SharedMem
{
public:     
struct memory { 
char buff[100]; 
int status, pid1, pid2; 
}; 
static struct memory* shmptr; 
}

我想使用SharedMem::memory shmptr;

但是我收到错误undefined reference to 'SharedMem::shmptr'

如何在C++中正确定义结构?

后续问题,如果我的类完全在头文件中,我该如何定义这个结构,我可以在头文件底部的类声明之后定义它吗?

谢谢

class SharedMem
{
public:     
struct memory { 
char buff[100]; 
int status, pid1, pid2; 
}; 
static memory* shmptr; 
};
// must add this in the cpp file!
SharedMem::memory* SharedMem::shmptr = nullptr;