2012-03-05 60 views
0

我正在使用MFC SDI應用程序,其中包含一個C++泛型類,但是我遇到問題並且卡住了它。如何extern類對象C++ MFC

我在Tree.h一個通用的C++類及其實施Tree.cpp,還有兩個班,說a_Class.h和。

的問題是:

我提出的Tree.h實例中a_Class.cpp這樣的:

Tree *obj = new Tree() 

我宣佈全球範圍內它吧。現在,我想在b_Class中使用這個非常相同的對象。

爲此,我使用extern keywork,在b_Class.cpp如下:

extern Tree *obj; 

此運行很好,但它並沒有使用相同的對象。在後臺,它聲明瞭單獨的對象。

我該如何解決這個問題?

回答

0

從您的描述中,它聽起來像應該工作。你可能會有所不同重寫它,在a_Class.cpp添加全局函數:

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

在b_Class.h補充:

extern Tree* GetTreeObj(); 

然後使用GetTreeObj()來檢索樹指針

+0

感謝您的回覆, 我寫的。並運行相同的問題。 – 2012-03-05 23:57:12

+0

你試過調試過嗎?像進入GetTreeObj()並調查變量內容一樣?我也假設你在這兩個文件中使用相同的包含「Tree.h」。 – marcinj 2012-03-06 00:02:36

+0

是的....是啊..是啊..得到它..這是現在的工作非常感謝.. – 2012-03-06 01:43:26