屬性的目的

屬性目前無法做到的方向擴充 C++,而不會中斷該語言的傳統的結構。屬性可讓提供者 (個別的 Dll) 來動態擴充語言功能。屬性的主要目標是簡化 COM 元件,除了增加元件開發人員的產能層級的製作權限。屬性可以套用到幾乎任何 C++ 建構函式,例如類別、 資料成員或成員函式。這項新技術所提供的益處的反白顯示如下:

  • 顯露常見及簡潔的呼叫慣例。

  • 使用插入的程式碼一樣,不像巨集可辨識的偵錯工具。

  • 允許簡單衍生自基底類別不包括繁瑣的實作詳細資料。

  • 取代大量的所需的幾個簡單的屬性與 COM 元件的 IDL 程式碼。

比方說,若要執行簡單的事件接收器為泛型的 ATL 類別,您無法套用 event_receiver 如屬性設定為特定的類別CMyReceiver。Event_receiver 屬性由 Visual C++ 編譯器,目的檔中插入適當的程式碼編譯。

[event_receiver(com)]
class CMyReceiver 
{
   void handler1(int i) { ... }
   void handler2(int i, float j) { ... }
}

您接著可以設定 CMyReceiver 方法handler1和handler2來處理事件 (使用內建的函式 __hook) 從事件來源,您可以建立使用 event_source

請參閱

其他資源

屬性化程式設計概念