2009-12-05 50 views

回答

15

只是混淆了关键字位在正确的语法到达。 摘要在C#中处于前沿,但在C++/CLI中处于末尾。与覆盖关键字相同,现在也被符合C++ 11规范的编译器认可,该编译器期望它在函数声明的处。像= 0确实在传统的C++标记的功能抽象:

public ref class SomeClass abstract { 
public: 
    virtual String^ SomeMethod() abstract; 
}; 
+4

声明“SomeMethod()= 0”和“SomeMethod()抽象”有什么区别吗? – Lopper 2009-12-05 01:44:52

+1

No. = 0是C++语法,但C++/CLI也支持它。 – 2009-12-05 02:19:46

+0

@nobugz:谢谢! – Lopper 2009-12-05 02:46:20

6

您使用abstract

public ref class SomeClass abstract 
{ 
    public: 
     virtual System::String^ SomeMethod() = 0; 
} 
+0

有声明之间的任何差异 “的someMethod()= 0” 和 “的someMethod()抽象的”? – Lopper 2009-12-05 01:44:10

+0

不是。 Method()= 0是定义抽象类的非C++/CLI(只是stnadard C++)的方式。使用C++/CLI,您可以使用它或新的抽象关键字。我更喜欢使用原文,因为它只是习惯,抽象关键字在方法的情况下是上下文敏感的,但是可以工作。请参阅:http://msdn.microsoft.com/en-us/library/b0z6b513(VS.80).aspx – 2009-12-05 01:48:02

+0

@Reed Copsey:谢谢! – Lopper 2009-12-05 02:47:12

相关问题