次の方法で共有


noncreatable

それ自体ではインスタンス化できないオブジェクトを定義します。

構文

[noncreatable]

解説

noncreatable C++ 属性には、 noncreatable MIDL 属性と同じ機能があり、コンパイラによって、生成された .IDL ファイルに自動的に渡されます。

この属性が ATL を使用するプロジェクト内で使用されている場合、属性の動作は変わります。 上記の動作に加えて、属性は OBJECT_ENTRY_NON_CREATEABLE_EX_AUTO マクロも挿入します。 このマクロは、オブジェクトが外部で作成できないことを ATL に示します。

// cpp_attr_ref_noncreatable.cpp
// compile with: /LD
#include <unknwn.h>
[module(name="MyLib")];

[object, uuid("11111111-1111-1111-1111-111111111111")]
__interface A
{
};

[coclass, uuid("11111111-1111-1111-1111-111111111112"), noncreatable]
class CMyClass : public A
{
   HRESULT xx();
};

必要条件

属性コンテキスト Value
適用対象 $
反復可能 いいえ
必要な属性 coclass
無効な属性 なし

属性コンテキストの詳細については、「 属性コンテキスト」を参照してください。

関連項目

IDL 属性
クラス属性