这是我的程序:
//client.h
#ifndef CLIENT_H
#define CLIENT_H
class Client{
public:
static void ChangeServerName(char* name);
static void ChangeClientNum(int num);
int ShowClientNum()const{return ClientNum;}
char* ShowServerName()const{return ServerName;}
private:
static char* ServerName;
static int ClientNum;
};
#endif
上面是定义类的头文件
//client.cpp
#include<iostream>
#include "client.h"
using namespace std;
char* Client::ServerName="DefaultName";
int Client::ClientNum=0;
void Client::ChangeServerName(char* name){
ServerName=name;
}
void Client::ChangeClientNum(int num){
ClientNum=num;
}
类里的函数的定义
//lab5_2.cpp
#include<iostream>
#include "client.h"
using namespace std;
int main(){
Client C;
char* name="DefaultName";
int num;
bool flag=0;
while(flag==0){
cout<<C.ShowServerName()<<endl;
cin>>name;
C.ChangeServerName(name);
cout<<C.ShowServerName()<<endl;
cin>>num;
C.ChangeClientNum(num);
cout<<C.ShowClientNum()<<endl;
cout<<"Quit? (yes-1 no-0)"<<endl;
cin>>flag;
}
return 0;
}
这个是main函数,按ctrl+F5以后出错:
0x00824969 处有未经处理的异常(在 Work.exe 中): 0xC0000005: 写入位置 0x0082EBFC 时发生访问冲突。
好像执行到istream里面的*_Str++ = _Traits::to_char_type(_Meta);// add it to string这一行跪烂了,不是很明白错误在哪里,求助!
//client.h
#ifndef CLIENT_H
#define CLIENT_H
class Client{
public:
static void ChangeServerName(char* name);
static void ChangeClientNum(int num);
int ShowClientNum()const{return ClientNum;}
char* ShowServerName()const{return ServerName;}
private:
static char* ServerName;
static int ClientNum;
};
#endif
上面是定义类的头文件
//client.cpp
#include<iostream>
#include "client.h"
using namespace std;
char* Client::ServerName="DefaultName";
int Client::ClientNum=0;
void Client::ChangeServerName(char* name){
ServerName=name;
}
void Client::ChangeClientNum(int num){
ClientNum=num;
}
类里的函数的定义
//lab5_2.cpp
#include<iostream>
#include "client.h"
using namespace std;
int main(){
Client C;
char* name="DefaultName";
int num;
bool flag=0;
while(flag==0){
cout<<C.ShowServerName()<<endl;
cin>>name;
C.ChangeServerName(name);
cout<<C.ShowServerName()<<endl;
cin>>num;
C.ChangeClientNum(num);
cout<<C.ShowClientNum()<<endl;
cout<<"Quit? (yes-1 no-0)"<<endl;
cin>>flag;
}
return 0;
}
这个是main函数,按ctrl+F5以后出错:
0x00824969 处有未经处理的异常(在 Work.exe 中): 0xC0000005: 写入位置 0x0082EBFC 时发生访问冲突。
好像执行到istream里面的*_Str++ = _Traits::to_char_type(_Meta);// add it to string这一行跪烂了,不是很明白错误在哪里,求助!

