CSDN首页 空间 新闻 论坛 Blog 下载 读书 网摘 搜索 .NET Java 视频 接项目 求职 在线学习 买书 程序员 通知
山寨机中的战斗机! 程序优化工程师到底对IT界有没有贡献
CSDN社区
搜索 收藏 打印 关闭
CSDN社区 >  C/C++ >  新手乐园

救命了,求大虾们帮忙 .cpp & .hpp的问题 不是故意发在这边的,新手区半天了,没有人理

楼主en2113(薇葳儿)2005-11-21 00:26:30 在 C/C++ / 新手乐园 提问

#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

相关问题

  • 到人才网站(北京地区)转了一圈的沮丧发现---不是故意打击大家啊
  • 转贴: 我的住院日记::羊肉炉不是故意的
  • 不要问我有没有碰到 "你的回复太多了,需要休息休息!!!!" ,我没法回答你,我不是故意的
  • 如何pas文件转换成hpp或cpp文件呢?
  • 救命了,求大虾们帮忙 .cpp & .hpp的问题
  • 请问*.h和*.hpp有什么区别?
  • 请问在cpp及hpp/h文件中饱含头文件有什么不同?
  • .hpp是什么文件,它和.h有什么区别?
  • C文件与CPP文件的区别!!!!!!!!!
  • C文件与CPP文件有什么区别????

关键词

  • client
  • virtual
  • cpp
  • clientnum
  • setclient
  • itsservernam
  • changeservername
  • getclient
  • itsname
  • cout

得分解答快速导航

  • 帖主:en2113
  • ma100
  • dch1287

相关链接

  • C/C++ Blog
  • C/C++类图书
  • C/C++类源码下载

广告也精彩

反馈

请通过下述方式给我们反馈
反馈
提问
网站简介|广告服务|VIP资费标准|银行汇款帐号|网站地图|帮助|联系方式|诚聘英才|English|问题报告
北京创新乐知广告有限公司 版权所有, 京 ICP 证 070598 号
世纪乐知(北京)网络技术有限公司 提供技术支持
Copyright © 2000-2008, CSDN.NET, All Rights Reserved
GongshangLogo