__abstract

备注

本主题仅适用于 C++ 托管扩展的版本 1。此语法应仅用于维护版本 1 代码。有关在新语法中使用等效功能的信息,请参阅摘要 (Visual C++)

声明不能直接实例化的托管类。

__abstract class-specifier 
__abstract struct-specifier

备注

__abstract 关键字声明目标类只能用作另一类的基类。 将 __abstract 应用于类或结构并不表示该结果是 __gc 类或 __gc 结构。

不同于抽象基类的 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();
}