MFC 引用头文件的问题。在.h中include我自己写的.h失败,但是在.cpp中就成功。

MFC 引用头文件的问题。在.h中include我自己写的.h失败,但是在.cpp中就成功。,第1张

头文件加宏才行,如下:

#ifndef _CLASS_B_H_INCLUDE_

#define _CLASS_B_H_INCLUDE_

#pragma once

class B

{

public:

    void Do()

    {

        int i = 0

    }

}

#endif

(1)Core.h 中 #include 12Dlg.h ,(2)12Dlg.h中#include Core.h

包含头文件#include 12Dlg.h 时,也就是在定义Core之前就开始

Core core //这时还没有给出定义 懂了吗?

问题是再定义Core的完整定义给出前不能使用对象Core core

只能使用指针或引用,这是个常识。

头文件互相包含,肯定会出问题的。

有个简单的解决办法,在头文件里不要包含对方的头文件,而用个类的前向声明就可以了。

比如,在parentdlg.h里,在类CParentDlg的定义前加个类的前向声明:

class CChildDlg //类的前向声明

class CParentDlg : public CDialog//CParentDlg的定义。

{

…………

在childdlg.h里,也这么做:

class CParentDlg //类的前向声明

class CChildDlg: public CDialog//CChildDlg的定义。

{

…………

而把#include "parentdlg.h"放到childdlg.cpp里,把#include "childdlg.h"也放到parentldlg.cpp里,在头文件里不要include。


欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/bake/11845086.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-19
下一篇 2023-05-19

发表评论

登录后才能评论

评论列表(0条)

保存