__abstract

 

发布时间: 2016年4月

备注

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

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

语法

__abstract 
class-specifier
__abstract 
struct-specifier

备注

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

不同于抽象基类的 C++ 概念,使用 __abstract 关键字的类可以定义其成员函数。

备注

当与 __abstract__value 关键字一起使用时,__sealed 关键字是不允许使用的,而与 __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();
}