2009-12-05 68 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