谁能解释为什么以下代码无法编译?至少在g ++ 4.2.4上.
更有趣的是,为什么它会在我将MEMBER转换为int时进行编译?
#include <vector>
class Foo {
public:
static const int MEMBER = 1;
};
int main(){
vector<int> v;
v.push_back( Foo::MEMBER ); // undefined reference to `Foo::MEMBER'
v.push_back( (int) Foo::MEMBER ); // OK
return 0;
}
Run Code Online (Sandbox Code Playgroud) 我有一个具有静态成员结构的类
class SharedMem
{
public:
struct memory {
char buff[100];
int status, pid1, pid2;
};
static struct memory* shmptr;
}
Run Code Online (Sandbox Code Playgroud)
我想使用定义静态结构
SharedMem::memory shmptr;
但我收到错误 undefined reference to 'SharedMem::shmptr'
如何在 C++ 中正确定义结构?
和后续问题,如果我的类完全在头文件中,我如何定义这个结构,我可以在头文件底部的类声明之后定义它吗?
谢谢