首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 操作系统 > UNIXLINUX >

编译有关问题,类之间相互引用

2012-03-01 
编译问题,类之间相互引用。windows下没问题,Linux下一直没解决啊!程序框架如下: /***文件名:MessageFactory

编译问题,类之间相互引用。
windows   下没问题,Linux   下一直没解决啊!
程序框架如下: 

/**
*文件名:MessageFactory.h
**/
#ifndef   MessageFactory_h
#define   MessageFactory_h

#include   "MessageServer.h "

class   MessageServer   ;

class   MessageFactory
{
public:
MessageFactory(void){}

virtual   ~MessageFactory(void){}

virtual   void   CreateReceiver(int   code,   MessageServer*   server)   =   0;
};

#endif  


/**
*文件名:MessageFactoryImpl.h
**/
#ifndef   MessageFactoryImpl_h
#define   MessageFactoryImpl_h

#include   "MessageFactory.h "
 
class   MessageFactoryImpl   :public   MessageFactory
{

public:
MessageFactoryImpl();
virtual   ~MessageFactoryImpl(){}
   
        virtual   void   CreateReceiver(int   code,   MessageServer*   server);
};
#endif

/**
*文件名:MessageFactoryImpl.cpp
**/

#include   "MessageFactoryImpl.h "

MessageFactoryImpl::MessageFactoryImpl()
{
}
   
void   MessageFactoryImpl::CreateReceiver(int   code,   MessageServer*   server)
{
}

 
/**
*文件名:MessageServer.h
**/
#ifndef   MessageServer_h
#define   MessageServer_h

#include   "MessageFactory.h "

class   MessageFactory   ;

class   MessageServer
{
public:
  MessageServer();
MessageServer(int   udpPort,   MessageFactory*   factory,   long   timeout);
virtual   ~MessageServer();
 
};
#endif

/**
*文件名:MessageServer.cpp
**/

#include   "MessageServer.h "  
 
MessageServer::MessageServer()
{

}
 
MessageServer::MessageServer(int   udpPort,   MessageFactory*   factory,   long   timeout)
{
}
 
MessageServer::~MessageServer()
{
}  

//:test.cpp
#include   <iostream>

#include   "MessageFactoryImpl.h "
#include   "MessageServer.h "

using   namespace   std;

int   main()
{

MessageFactoryImpl   *a=new   MessageFactoryImpl();

MessageServer   *b=new   MessageServer();

cout < < "it 's   ok " < <endl;

delete   a;
delete   b;

return   0;
}


#   makefile
test:   MessageFactoryImpl.o   MessageServer.o  
g++     test.cpp         -o   test

MessageFactoryImpl.o:   MessageFactoryImpl.h   MessageFactory.h   \
                                            MessageServer.o  
g++   -c   MessageFactoryImpl.cpp

MessageServer.o:   MessageFactory.h   MessageServer.h  
g++   -c   MessageServer.cpp  




[解决办法]
提示报什么错??
------解决方案--------------------


MessageFactory::MessageFactory(void){}
这个函数的定义呢??
[解决办法]
Makefile改第3行

# makefile
test: MessageFactoryImpl.o MessageServer.o
g++ test.cpp -o test MessageFactoryImpl.o MessageServer.o

MessageFactoryImpl.o: MessageFactoryImpl.h MessageFactory.h \
MessageServer.o
g++ -c MessageFactoryImpl.cpp

MessageServer.o: MessageFactory.h MessageServer.h
g++ -c MessageServer.cpp

热点排行