zhiye_wang

向星空仰望的越深,越发现自己的渺小

  C++博客 :: 首页 :: 新随笔 :: 联系 :: 聚合  :: 管理 ::
  31 随笔 :: 1 文章 :: 2 评论 :: 0 Trackbacks
在构造自己的类时,有可能会碰到两个类之间的相互引用问题,例如:定义了类A类B,A中使用了B定义的类型,B中也使用了A定义的类型
例如:
类CGUICmd中调用了类CMainFrame。
类CMainFrame中调用了类CGUICmd。
//////////////////////////////////////////////////////////////////////////
/// GUICmd.h
 
#ifndef _GUI_CMD_H
#define _GUI_CMD_H
 
class CGUICmd
{
public:
CGUICmd(void);
~CGUICmd(void);
int Gui_GetMessage(HWND hWnd, SOCKET sService, int bBlocking, CMainFrame* pFrame);
 
public:
SOCKET sService;
};
//////////////////////////////////////////////////////////////////////////
/// main_frame.h
 
#ifndef _MAIN_FRAME_H
#define _MAIN_FRAME_H
 
class CMainFrame:public CXMLWnd
{
public:
CGUICmd m_cGuiCmd;
};
不能单纯的再对方的源文件中互相包含头文件。
较好的方式:
main_frame.h 中#include "GUICmd.h", 
CGUICmd.h 中加入一行:class CMainFrame;
CGUICmd.cpp 中#include "main_frame.h"
//////////////////////////////////////////////////////////////////////////
/// main_frame.h
 
#ifndef _MAIN_FRAME_H
#define _MAIN_FRAME_H
 
#pragma once
 
#include "GUICmd.h"    
//////////////////////////////////////////////////////////////////////////
/// GUICmd.cpp
 
#include "GUICmd.h"
#include "main_frame.h"
 
 
//////////////////////////////////////////////////////////////////////////
/// GUICmd.h
 
#ifndef _GUI_CMD_H
#define _GUI_CMD_H
 
class CMainFrame;
 
class CGUICmd
{
}
posted on 2014-12-24 15:32 zhiye_wang 阅读(422) 评论(0)  编辑 收藏 引用 所属分类: C/C++通用

只有注册用户登录后才能发表评论。
网站导航: 博客园   IT新闻   BlogJava   知识库   博问   管理