__abstract
注意事項 |
---|
本主題只適用於 Managed Extensions for C++ 第 1 版。這個語法只可用於維護第 1 版的程式碼。如需在新語法中使用同等功能的詳細資訊,請參閱 abstract (C++ 元件擴充功能)。 |
宣告無法直接執行個體化的 Managed 類別。
__abstract class-specifier
__abstract struct-specifier
備註
__abstract 關鍵字會宣告目標類別只能做為另一個類別的基底類別使用。 將 __abstract 套用至類別或結構不表示結果為 __gc 類別或 __gc 結構。
不同於 abstract 基底類別在 C++ 中的概念,具有 __abstract 關鍵字的類別可以定義其成員函式。
注意事項 |
---|
搭配 __value 或 __sealed 關鍵字時不能使用 __abstract 關鍵字,搭配 __interface 關鍵字時則為多餘的關鍵字。 |
範例
在下列範例中,Derived 類別衍生自抽象基底類別 (Base)。 然後會嘗試對二者執行具現化,但只有 Derived 成功。
// keyword__abstract.cpp
// compile with: /clr:oldSyntax
#using <mscorlib.dll>
__abstract __gc class Base {
int BaseFunction() {
return 0;
}
};
__gc class Derived: public Base {};
int main() {
Base* MyBase = new Base(); // C3622 can't BAse is abstract
Derived* MyDerived = new Derived();
}