在构造自己的类时,有可能会碰到两个类之间的相互引用问题,例如:定义了类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
{
}