相关疑难解决方法(0)

对静态类成员的未定义引用

谁能解释为什么以下代码无法编译?至少在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)

c++ g++

191
推荐指数
5
解决办法
11万
查看次数

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

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

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++ 中正确定义结构?

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

谢谢

c++

0
推荐指数
1
解决办法
62
查看次数

标签 统计

c++ ×2

g++ ×1