Aracılığıyla paylaş


default (C++)

Ortak sınıf içinde tanımlanan özel veya dispinterface öğesinin varsayılan programlanabilirlik arabirimini temsil ettiğini gösterir.

Sözdizimi

[ default(interface1, interface2) ]

Parametreler

arabirim1
özniteliğiyle default tanımlanan sınıfı temel alan bir nesne oluşturan betik ortamları için kullanılabilir hale getirilecek varsayılan arabirim.

Varsayılan arabirim belirtilmezse, kaynak olmayan arabirimin ilk oluşumu varsayılan olarak kullanılır.

arabirim2
(İsteğe bağlı) Varsayılan kaynak arabirimi. Bu arabirimi kaynak özniteliğiyle de belirtmeniz gerekir.

Varsayılan bir kaynak arabirimi belirtilmezse, ilk kaynak arabirimi varsayılan olarak kullanılır.

Açıklamalar

default C++ özniteliği, varsayılan MIDL özniteliğiyle aynı işlevselliğe sahiptir. default özniteliği case özniteliğiyle de kullanılır.

Örnek

Aşağıdaki kod, varsayılan programlanabilirlik arabirimi olarak belirtmek ICustomDispatch üzere bir ortak sınıfın tanımında nasıl default kullanıldığını gösterir:

// cpp_attr_ref_default.cpp
// compile with: /LD
#include "windows.h"
[module(name="MyLibrary")];

[object, uuid("9E66A290-4365-11D2-A997-00C04FA37DDB")]
__interface ICustom {
   HRESULT Custom([in] long l, [out, retval] long *pLong);
};

[dual, uuid("9E66A291-4365-11D2-A997-00C04FA37DDB")]
__interface IDual {
   HRESULT Dual([in] long l, [out, retval] long *pLong);
};

[object, uuid("9E66A293-4365-11D2-A997-00C04FA37DDB")]
__interface ICustomDispatch : public IDispatch {
   HRESULT Dispatch([in] long l, [out, retval] long *pLong);
};

[   coclass, default(ICustomDispatch), source(IDual), uuid("9E66A294-4365-11D2-A997-00C04FA37DDB")
]
class CClass : public ICustom, public IDual, public ICustomDispatch {
   HRESULT Custom(long l, long *pLong) { return(S_OK); }
   HRESULT Dual(long l, long *pLong) { return(S_OK); }
   HRESULT Dispatch(long l, long *pLong) { return(S_OK); }
};

int main() {
#if 0 // Can't instantiate without implementations of IUnknown/IDispatch
   CClass *pClass = new CClass;

   long llong;

   pClass->custom(1, &llong);
   pClass->dual(1, &llong);
   pClass->dispinterface(1, &llong);
   pClass->dispatch(1, &llong);

   delete pClass;
#endif
   return(0);
}

Kaynak özniteliğinin nasıl kullanılacağına defaultilişkin bir örneği de vardır.

Gereksinimler

Öznitelik bağlamı Değer
Şunlar için geçerlidir: class, struct, veri üyesi
Tekrarlanabilir Hayır
Gerekli öznitelikler coclass (veya struct'ye class uygulandığında)
Geçersiz öznitelikler Hiçbiri

Daha fazla bilgi için bkz . Öznitelik Bağlamları.

Ayrıca bkz.

IDL öznitelikleri
Sınıf Öznitelikleri
coclass