以下是一个简单的小程序,gcc编译的时候提示undefined reference to `A::m',我想知道我错在哪里?#include #include using namespace std;class A{public:\x05int id;\x05static map m;\x05A() :id(0) {};\x05A(int i) :id(i) { m[id] = *this

来源:学生作业帮助网 编辑:作业帮 时间:2024/05/15 18:04:51
以下是一个简单的小程序,gcc编译的时候提示undefined reference to `A::m',我想知道我错在哪里?#include #include using namespace std;class A{public:\x05int id;\x05static map m;\x05A() :id(0) {};\x05A(int i) :id(i) { m[id] = *this

以下是一个简单的小程序,gcc编译的时候提示undefined reference to `A::m',我想知道我错在哪里?#include #include using namespace std;class A{public:\x05int id;\x05static map m;\x05A() :id(0) {};\x05A(int i) :id(i) { m[id] = *this
以下是一个简单的小程序,gcc编译的时候提示undefined reference to `A::m',我想知道我错在哪里?
#include
#include
using namespace std;
class A
{
public:
\x05int id;
\x05static map m;
\x05A() :id(0) {};
\x05A(int i) :id(i) { m[id] = *this; };
\x05~A() {};
};
int main()
{
\x05A a(1);
\x05cout

以下是一个简单的小程序,gcc编译的时候提示undefined reference to `A::m',我想知道我错在哪里?#include #include using namespace std;class A{public:\x05int id;\x05static map m;\x05A() :id(0) {};\x05A(int i) :id(i) { m[id] = *this
类的静态成员要在全局下定义.比如:
#include
using namespace std;
class A
{
\x05static A* w;
public:
\x05A(){}
\x05~A() {}
};
int A::w = NULL;
int main(){
\x05A a;
return 0;
}
所以你的程序改成
#include
#include
using namespace std;
class A
{
public:
\x05int id;
\x05static map m;
\x05A() :id(0) {};
\x05A(int i) :id(i) { m[id] = *this; };
\x05~A() {};
};
map A::m;
int main()
{
\x05A a(1);
\x05cout