2011-01-13 118 views
30

什麼是ref class以及什麼時候聲明一個類是「ref class」的任何好站點或解釋?託管C++ ref類

MSDN上的解釋是不夠的我,

base_type(可選)

基本類型。 ref類或ref結構可以從零個或多個託管接口和零個或一個ref類型繼承。值類或值結構只能從零個或多個託管接口繼承。

REF

ref關鍵字告訴類或結構將在堆和參考被分配給將被傳遞給函數或存儲在類成員的編譯器。關鍵字value告訴編譯器,類或結構中的所有數據都被傳遞給函數或存儲在成員中。

回答

47

基本上,ref class是一個CLR類。這相當於C#中的class

這創建了由CLR管理的引用類型。如果你想創建一個可用於C#的類,你通常會創建一個ref class。 (ref struct,順便說一句,不完全是一回事,但與C++的標準類與結構預設無障礙規則。)

此外,僅供參考 - 爲了使一個值類型(struct在C#),你'使用value classvalue struct

對這些新關鍵字的很好解釋是Herb Sutter's post on C++/CLI Keywords。如果您不熟悉C++/CLI,但具有可靠的C++背景,這是一個有用的參考。

+0

很好地解釋了基本概念。謝謝!這正是我一直在尋找的:) – 2017-07-07 06:58:33