相关疑难解决方法(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万
查看次数

获取const char*const a [30]的大小在对象初始化之前确定大小有困难

下面是一个代码部分,无法根据数组是否为静态来检索数组的大小.

struct foo
{
    static const char* const a[30];
    const char* const b[30];
    const int ia = __countOf(a) // compiles
    const int ib = __countOf(b) // has compile errors related to initialization
};
Run Code Online (Sandbox Code Playgroud)

c++ visual-c++ c++11

-3
推荐指数
1
解决办法
255
查看次数

标签 统计

c++ ×2

c++11 ×1

g++ ×1

visual-c++ ×1