求帮助~求修正错误
//client.h
#ifndef Client_H
#define Client_H
#include <iostream>
using namespace std;
class CLIENT
{
private:
static char ServerName;
static int ClientNum;
public:
CLIENT(){ClientNum++;};
~CLIENT(){ClientNum--;};
static int GetClientNum();
static void ChangServerName(char name);
static char GetServerName();
void showclient();
};
#endif
//client.cpp
#include "client.h"
int CLIENT::ClientNum = 0;
int CLIENT::GetClientNum()
{return ClientNum;}
void CLIENT::ChangServerName(char name)
{ServerName=name;}
char CLIENT::GetServerName()
{return ServerName;}
char CLIENT::ServerName= 'A';
void CLIENT::showclient()
{
cout << "服务器名称为:" << CLIENT::GetServerName()<< endl;
cout << "客户机数量为:" << CLIENT::GetClientNum()<< endl;
}
//lab.cpp
#include "client.h"
int main()
{
CLIENT::showclient();
CLIENT::ChangServerName('B');
CLIENT a;
CLIENT::showclient();
CLIENT b;
CLIENT::showclient();
b.~CLIENT();
CLIENT::showclient();
}
结果
服务器名:A
客户总数:0
服务器名:B
客户总数:1
服务器名:B
客户总数:2
服务器名:B
客户总数:1
[解决办法]
static void showclient(); //加一个 static
[解决办法]
因为非静态方法不能访问静态成员,也不能调用静态方法