以下是一个简单的小程序,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/06/20 13:10:10
![以下是一个简单的小程序,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](/uploads/image/z/7146680-32-0.jpg?t=%E4%BB%A5%E4%B8%8B%E6%98%AF%E4%B8%80%E4%B8%AA%E7%AE%80%E5%8D%95%E7%9A%84%E5%B0%8F%E7%A8%8B%E5%BA%8F%2Cgcc%E7%BC%96%E8%AF%91%E7%9A%84%E6%97%B6%E5%80%99%E6%8F%90%E7%A4%BAundefined+reference+to+%60A%3A%3Am%27%2C%E6%88%91%E6%83%B3%E7%9F%A5%E9%81%93%E6%88%91%E9%94%99%E5%9C%A8%E5%93%AA%E9%87%8C%3F%23include+%23include+using+namespace+std%3Bclass+A%7Bpublic%3A%5Cx05int+id%3B%5Cx05static+map+m%3B%5Cx05A%28%29+%3Aid%280%29+%7B%7D%3B%5Cx05A%28int+i%29+%3Aid%28i%29+%7B+m%5Bid%5D+%3D+%2Athis)
以下是一个简单的小程序,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