试过把三个复制合并成一个CPP文件,调试没有问题,但是像这样分开来就不行
1>client.obj : error LNK2019: 无法解析的外部符号 "public: static void __cdecl client::changeserver(char)" (?changeserver@client@@SAXD@Z),该符号在函数 _main 中被引用
1>client.obj : error LNK2001: 无法解析的外部符号 "private: static int client::num" (?num@client@@0HA)
1>D:\VS2008\项目\client\Debug\client.exe : fatal error LNK1120: 2 个无法解析的外部命令
//client.h
#ifndef __CLIENT_H__
#define __CLIENT_H__
#include<iostream>
using namespace std;
class client
{
private:
static char servername;
static int num;
char name;
public:
static void changeserver(char s);
client(char n){name=n;num++;};
static void shownum(){cout<<"there are "<<num<<" clients."<<endl;}
};
#endif
//源1.cpp
#include"client.h"
#include<iostream>
using namespace std;
char client::servername='a';
int client::num=0;
void client::changeserver(char s)
{
servername=s;
cout<<"the servername has been changed into "<<servername<<endl;
}
//client.cpp
#include"client.h"
#include<iostream>
using namespace std;
int main()
{
client c('c');
client::changeserver('a');
client::shownum();
return 0;
}