表述不好,还是看代码吧。

MFC中Dlg类CReIncDlg中有一个成员int DataFromReIncDlg();

另外还有一个类CReIncMgr;

CReIncDlg有一个CReIncMgr的指针对象;

CReIncMgr有一个CReIncDlg的指针对象;

CReIncMgr的成员变量调用CReIncDlg里的一个成员,

CReIncDlg的成员变量调用CReIncMgr里的一个成员,可以返回CReIncDlg里成员的值。

编译器VS2005

// ReIncMgr.h
#pragma once

#include "ReIncDlg.h"

class CReIncMgr
{
public:
    CReIncMgr(void);
    ~CReIncMgr(void);
    int TestReInc();
private:
    CReIncDlg *m_pReIncDlg;
};

// ReIncMgr.cpp
#include "StdAfx.h"
#include "ReIncMgr.h"

CReIncMgr::CReIncMgr(void)
{
}

CReIncMgr::~CReIncMgr(void)
{
}

int CReIncMgr::TestReInc( )
{
    return m_pReIncDlg->DataFromReIncDlg();
}

// ReIncDlg.h : header file
//

#pragma once
#include "ReIncMgr.h"

// CReIncDlg dialog
class CReIncDlg : public CDialog
{
    // 编译器自动生成的代码
public:
    int GetMgrData();
    int DataFromReIncDlg();

private:
    CReIncMgr *m_pReIncMgr;
}

// ReIncDlg.cpp
int CReIncDlg::DataFromReIncDlg()
{
    return 0xFF;
}

int CReIncDlg::GetMgrData()
{
    // 可以得到 0xFF
    return m_pReIncMgr->TestReInc();
}

推荐图书

  • C++ Primer中文版(第4版)
  • More Effective C++:35个改善编程与设计的有效方法(中文版)
  • 设计模式:可复用面向对象软件的基础


1个回答

这个完全可以再头文件里声明 源文件里包含

比如 你完全没必要在

ReIncMgr.h里

#pragma once
#include "ReIncMgr.h"

而是

#pragma once
class CReIncDlg;

然后再 ReIncMgr.CPP里

写#include "ReIncMgr.h"