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 default
iliş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ı.