如何外部类对象C++MFC

How to extern Class objects C++ MFC

本文关键字:C++MFC 对象 何外部      更新时间:2023-10-16

我正在开发MFC SDI应用程序,其中包括一个C++泛型类,但我遇到了一个问题,一直在使用它。

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

问题是:

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

Tree *obj = new Tree()

我在全球范围内宣布了这一点。现在,我想在b_Class中使用这个完全相同的对象。

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

extern Tree *obj;

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

我该怎么解决这个问题?

根据您的描述,它听起来应该可以工作。你可以用不同的方式重写它,在a_Class.cpp中添加全局函数:

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

在b_Class.h中添加:

extern Tree* GetTreeObj();

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