声明一个不能被直接实例化的托管类。
语法
__abstract
class-specifier
__abstract struct-specifier
注释
__abstract关键字声明目标类只能作为另一个类的基类使用。对一个类或者结构应用__abstract并不意味着结果是一个__gc类或者__gc结构。
和C++中abstract基类的概念不同,一个带有关键字__abstract的类可以定义它的成员函数。
示例
在下面的例子中,派生类从一个抽象基类(Base)派生。接着尝试实例化这两个类,只有派生类成功了。
// keyword__abstract.cpp
// compile with: /clr:oldSyntax
#using <mscorlib.dll>
__abstract __gc class Base {
intBaseFunction() {
return 0;
}
};
__gc class Derived: public Base {};
int main() {
Base* MyBase = new Base(); //C3622 can't Base is abstract
Derived* MyDerived = new Derived();
}
Note
这个主题只应用在C++托管扩展的版本1.这个语法只应该被用于维护版本1的代码。