【问题标题】:How to extern Class objects C++ MFC如何外部类对象 C++ MFC
【发布时间】:2012-03-06 07:55:56
【问题描述】:

我正在开发 MFC SDI 应用程序,其中我包含一个 C++ 泛型类,但我遇到了问题并被困在上面。

我在 Tree.h 中有一个通用 C++ 类及其实现 Tree.cpp,还有另外两个类,比如 a_Class.hb_Class.h

问题是:

我在a_Class.cpp 中创建Tree.h 的实例,如下所示:

Tree *obj = new Tree()

我在全球范围内声明了它。现在,我想在b_Class 中使用同样的对象。

为此,我在b_Class.cpp 中使用extern 键,如下所示:

extern Tree *obj;

这运行良好,但它不使用相同的对象。在后台,它声明了单独的对象。

我该如何解决这个问题?

【问题讨论】:

    标签: c++ class object mfc extern


    【解决方案1】:

    从您的描述看来,它应该可以工作。你可以改写不同的,在 a_Class.cpp 添加全局函数:

    static Tree* obj = new Tree();
    Tree* GetTreeObj() {
       return obj;
    }
    

    在 b_Class.h 中添加:

    extern Tree* GetTreeObj();
    

    然后使用 GetTreeObj() 检索树指针

    【讨论】:

    • 谢谢你的回复,我写了。并运行同样的问题。
    • 你试过调试吗?喜欢进入 GetTreeObj() 并调查变量内容?我还假设您在两个文件中使用相同的包含“Tree.h”。
    • 实际上,我的旧方法行不通。调试很有帮助。我会把你给我的这个东西推荐给其他人。多谢。你解决了我的问题。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2010-12-21
    • 2018-10-23
    • 1970-01-01
    • 2021-04-30
    • 2011-01-17
    • 2013-04-19
    相关资源
    最近更新 更多