[英]Link error in C++ by g++
请看下面的程序。 为什么我收到错误?
#include <stdlib.h>
#include <string>
#include <string.h>
#include <iostream>
using namespace std;
class serverData
{
public:
static int serverTemp;
static int server;
};
int main(int argc, char** argv)
{
string s = "sajad bahmani";
serverData::server = 90 ;
const char * a = s.data();
cout << a[0] << endl;
return (EXIT_SUCCESS);
}
结合起来,我在尝试链接时遇到此错误:
build/Debug/GNU-Linux-x86/main.o: In function `main':
/home/sb23/pr/main.cpp:14: undefined reference to `serverData::server'
collect2: ld returned 1 exit status
静态成员变量必须在您的一个.CPP文件中分配存储:
/* static */
int serverData::serverTemp;
int serverData::server;
您刚刚在类中声明了静态成员,但尚未定义它们。 你需要在课外定义它们。
//definition
int serverData::serverTemp; //implicitly initialized to 0
int serverData::server = 5; // initialized to 5
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.