救命了,求大虾们帮忙 .cpp & .hpp的问题 不是故意发在这边的,新手区半天了,没有人理
#include<iostream>
#include<string>
using namespace std;
class Client
{
public:
Client(){ ClientNum++;}
virtual ~Client(){ ClientNum--;}
virtual string GetClient(){ return itsServerNam;}
virtual void SetClient(string name){ itsServerNam = name;}
static int ClientNum;
static void ChangeServerName(Client &a,Client &b);
private:
string itsServerNam;
};
int Client::ClientNum = 0;
void ChangeServerName(Client &a,Client &b);
int main()
{
string c1,c2;
Client client1;
cout << "set client1'name " << endl;
cin >> c1;
client1.SetClient(c1);
cout << "ClientNum is:" << Client::ClientNum << endl
<< "ServerNam is:" << client1.GetClient() << endl << endl;
Client client2;
cout << "set client2'name " << endl;
cin >> c2;
client2.SetClient(c2);
cout << "ClientNum is:" << Client::ClientNum << endl
<< "ServerNam is:" << client2.GetClient() << endl << endl;
ChangeServerName(client1,client2);
cout << "change name" << endl;
cout << "ServerNam is:" << client1.GetClient()<< endl;
cout << "ServerNam is:" << client2.GetClient() << endl;
return 0;
}
void ChangeServerName(Client &a,Client &b)
{
string c,d;
c = a.GetClient() ;
d = b.GetClient();
b.SetClient(c);
a.SetClient(d);
}
实现客户机(Client)类。定义静态数据成员ServerName,保存其服务器名称;整型静态数据成员ClientNum,记录已定义的客户数量;定义静态函数ChangeServerName()改变服务器名称。在头文件client.h中定义类,在文件client.cpp中实现,在文件test.cpp中测试这个类,观察相应的成员变量取值的变化情况。
要求:
新建一个空的项目lab6_3,添加头文件client.h,在其中定义类Client,再添加源程序文件client.cpp,在其中实现Client类,注意静态成员变量的使用方法;再添加文件lab6_3.cpp,在其中定义main()函数,测试Client类,观察相应的成员变量取值的变化情况。
程序写好了以后,可是怎么分成三个文件,老是出错~~~~~~~~~~~~~~
救命了,求大虾们帮忙,告诉我怎么分啊
问题点数:20、回复次数:21Top
1 楼en2113(薇葳儿)回复于 2005-11-21 00:36:33 得分 0
人生啊....Top
2 楼ma100()回复于 2005-11-21 00:47:38 得分 15
///////////////////////// client.h ////////////////////////
#include<iostream>
#include<string>
using namespace std;
class Client
{
public:
Client();
virtual ~Client();
virtual string GetClient();
virtual void SetClient(string);
static int ClientNum;
static void ChangeServerName(Client &a,Client &b);
private:
string itsServerNam;
};Top
3 楼en2113(薇葳儿)回复于 2005-11-21 00:54:37 得分 0
那其他两个呢,要加什么头文件啊,不对啊
谢谢ingTop
4 楼ma100()回复于 2005-11-21 00:56:02 得分 0
//////////////// client.cpp //////////////////
#include "client.h"
int Client::ClientNum = 0;
void ChangeServerName(Client &a,Client &b)
{
string c,d;
c = a.GetClient() ;
d = b.GetClient();
b.SetClient(c);
a.SetClient(d);
}
Client::Client()
{
ClientNum++;
}
Client::~Client()
{
ClientNum--;
}
string Client::GetClient()
{
return itsServerNam;
}
void Client::SetClient(string name)
{
itsServerNam = name;
}Top
5 楼ma100()回复于 2005-11-21 00:56:57 得分 0
///////////////////////// main.cpp ////////////////////////
#include "client.h"
int main()
{
string c1,c2;
Client client1;
cout << "set client1'name " << endl;
cin >> c1;
client1.SetClient(c1);
cout << "ClientNum is:" << Client::ClientNum << endl
<< "ServerNam is:" << client1.GetClient() << endl << endl;
Client client2;
cout << "set client2'name " << endl;
cin >> c2;
client2.SetClient(c2);
cout << "ClientNum is:" << Client::ClientNum << endl
<< "ServerNam is:" << client2.GetClient() << endl << endl;
ChangeServerName(client1,client2);
cout << "change name" << endl;
cout << "ServerNam is:" << client1.GetClient()<< endl;
cout << "ServerNam is:" << client2.GetClient() << endl;
return 0;
}Top
6 楼ma100()回复于 2005-11-21 01:06:02 得分 0
写错了Top
7 楼en2113(薇葳儿)回复于 2005-11-21 01:07:12 得分 0
为什么有一个错啊,,,那个函数不是已经声明了么???
不好意思哈,再麻烦一下Top
8 楼ma100()回复于 2005-11-21 01:07:46 得分 0
///////////////////////// client.h ////////////////////////
#include<iostream>
#include<string>
using namespace std;
class Client
{
public:
Client(){ ClientNum++;}
virtual ~Client(){ ClientNum--;}
virtual string GetClient(){ return itsServerNam;}
virtual void SetClient(string name){ itsServerNam = name;}
static int ClientNum;
static void ChangeServerName(Client &a,Client &b);
private:
string itsServerNam;
};
//////////////// client.cpp //////////////////
#include "client.h"
int Client::ClientNum = 0;
void ChangeServerName(Client &a,Client &b)
{
string c,d;
c = a.GetClient() ;
d = b.GetClient();
b.SetClient(c);
a.SetClient(d);
}
//main的没错Top
9 楼en2113(薇葳儿)回复于 2005-11-21 01:12:16 得分 0
为什么说ChangeServerName,没有定义啊Top
10 楼ma100()回复于 2005-11-21 01:26:05 得分 0
Client::ChangeServerName(client1,client2);
Top
11 楼ma100()回复于 2005-11-21 01:26:57 得分 0
ChangeServerName的实现部分放回.h 里Top
12 楼en2113(薇葳儿)回复于 2005-11-21 02:02:29 得分 0
还是不对啊Top
13 楼ma100()回复于 2005-11-21 02:07:03 得分 0
我都编对了的Top
14 楼en2113(薇葳儿)回复于 2005-11-21 02:10:21 得分 0
要不,那什么,要不,您您,再重头发一下下~~~~Top
15 楼ma100()回复于 2005-11-21 02:20:09 得分 0
////////////////h
#include<iostream>
#include<string>
using namespace std;
class Client
{
public:
Client(){ ClientNum++;}
virtual ~Client(){ ClientNum--;}
virtual string GetClient(){ return itsServerNam;}
virtual void SetClient(string name){ itsServerNam = name;}
static int ClientNum;
static void ChangeServerName(Client &a,Client &b)
{
string c,d;
c = a.GetClient() ;
d = b.GetClient();
b.SetClient(c);
a.SetClient(d);
}
private:
string itsServerNam;
};
////////////////
#include "client.h"
int Client::ClientNum = 0;
///////////////
#include "client.h"
int main()
{
string c1,c2;
Client client1;
cout << "set client1'name " << endl;
cin >> c1;
client1.SetClient(c1);
cout << "ClientNum is:" << Client::ClientNum << endl
<< "ServerNam is:" << client1.GetClient() << endl << endl;
Client client2;
cout << "set client2'name " << endl;
cin >> c2;
client2.SetClient(c2);
cout << "ClientNum is:" << Client::ClientNum << endl
<< "ServerNam is:" << client2.GetClient() << endl << endl;
Client::ChangeServerName(client1,client2);
cout << "change name" << endl;
cout << "ServerNam is:" << client1.GetClient()<< endl;
cout << "ServerNam is:" << client2.GetClient() << endl;
return 0;
}Top
16 楼en2113(薇葳儿)回复于 2005-11-21 02:24:01 得分 0
有一个问题ing
#include<iostream>
#include<string>
using namespace std;
class Client
{
public:
Client(){ ClientNum++;}
virtual ~Client(){ ClientNum--;}
virtual string GetClient(){ return itsServerNam;}
virtual void SetClient(string name){ itsServerNam = name;}
static int ClientNum;
static void ChangeServerName(string name){ itsServerNam = name;};
private:
static string itsServerNam;
//static int ClientNum;
};
int Client::ClientNum = 0;
void ChangeServerName(string name);
int main()
{
string c1,c2;
Client client1;
cout << "set client1'name " << endl;
cin >> c1;
client1.SetClient(c1);
cout << "ClientNum is:" << Client::ClientNum << endl
<< "ServerNam is:" << client1.GetClient() << endl << endl;
//Client client2;
//cout << "set client2'name " << endl;
//cin >> c2;
//client2.SetClient(c2);
//cout << "ClientNum is:" << Client::ClientNum << endl
// << "ServerNam is:" << client2.GetClient() << endl << endl;
Client::ChangeServerName(c2);
cout << "change name" << endl;
cout << "ServerNam is:" << client1.GetClient()<< endl;
//cout << "ServerNam is:" << client2.GetClient() << endl;
return 0;
}
这样的话,错误是怎么回事啊
^-^"大虾是不是要烦死了Top
17 楼en2113(薇葳儿)回复于 2005-11-21 02:27:48 得分 0
我的意思是把itsServerNam也变成静态成员,用ChangeServerName改他Top
18 楼en2113(薇葳儿)回复于 2005-11-21 02:30:48 得分 0
我已经逻辑混乱了...Top
19 楼dch1287(静华飞月)回复于 2005-11-21 03:43:25 得分 0
路过Top
20 楼dch1287(静华飞月)回复于 2005-11-21 03:44:33 得分 5
不是灌水
me 也 遇到 同样的 problem 呵呵
Top
21 楼en2113(薇葳儿)回复于 2005-11-21 03:44:55 得分 0
#include<iostream>
#include<string>
using namespace std;
class Client
{
public:
Client(){ ClientNum++;}
~Client(){ ClientNum--;}
string GetClient(){ return itsName;}
void SetClient(string name){ itsName = name;}
static int ClientNum;
static void ChangeServerName(string name1);
static string ServerNam;
private:
string itsName;
};
int Client::ClientNum = 0;
string ServerNam = "c";
void Client::ChangeServerName(string name1)
int main()
{
string c1,c2;
Client client1;
cout << "set client1'name " << endl;
cin >> c1;
client1.SetClient(c1);
cout << "ClientNum is:" << Client::ClientNum << endl
<< "Name is:" << client1.GetClient() << endl
<< "Servername is:" << Client::ServerNam << endl
<< endl;
cout << "changeServername" << endl;
Client::ChangeServerName(c2);
cout << "ClientNum is:" << Client::ClientNum << endl
<< "Name is:" << client1.GetClient() << endl
<< "Servername is:" << Client::ServerNam << endl
<< endl;
cout << "ServerNam is:" << Client::ServerNam << endl;
return 0;
}
void Client::ChangeServerName(string name1)
{
Client::ServerNam = name1;
}
链接错误,怎么办了,救命
Top




