2009-02-02 128 views

回答

5

你不能。託管類的實例被垃圾收集並在CLR堆上創建。非託管類的實例分配在非託管堆上。您怎麼能夠創建一個對象,其數據部分位於託管堆上,而其基礎數據位於非託管堆上?

您應該嘗試其他技術,例如將託管容器包裝在非託管事物上,反之亦然,並且可能從中派生出來。

+0

AFAIK,對象,而不是類,分配。非託管對象可以分配在堆棧或堆中。 儘管如此,您還是將非託管對象封裝在託管對象中。 – pyon 2009-03-21 05:42:27

+0

你是對的術語。不過,我想強調你如何申報你的課程。這就是爲什麼我使用託管類而不是託管對象。 – 2009-03-21 08:02:26

1

您不能尚未。 Herb Sutter寫了一個廣泛的C++/CLI Design Rationale,他暗示這樣的事情有一天可能確實是可能的。但是,微軟似乎停止了C++/CLI的進一步開發?

0

你可以做的最好的事情就是將非託管類包裝在管理器包裝中,然後從中派生出來。