C++/CLI中以下C#代碼的等效代碼是什麼?C++/CLI:如何在C++/CLI中聲明抽象(在C#中)類和方法?
public abstract class SomeClass
{
public abstract String SomeMethod();
}
C++/CLI中以下C#代碼的等效代碼是什麼?C++/CLI:如何在C++/CLI中聲明抽象(在C#中)類和方法?
public abstract class SomeClass
{
public abstract String SomeMethod();
}
只是混淆了關鍵字位在正確的語法到達。 摘要在C#中處於前沿,但在C++/CLI中處於末尾。與覆蓋關鍵字相同,現在也被符合C++ 11規範的編譯器認可,該編譯器期望它在函數聲明的端處。像= 0
確實在傳統的C++標記的功能抽象:
public ref class SomeClass abstract {
public:
virtual String^ SomeMethod() abstract;
};
您使用abstract
:
public ref class SomeClass abstract
{
public:
virtual System::String^ SomeMethod() = 0;
}
有聲明之間的任何差異 「的someMethod()= 0」 和 「的someMethod()抽象的」? – Lopper 2009-12-05 01:44:10
不是。 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
@Reed Copsey:謝謝! – Lopper 2009-12-05 02:47:12
聲明「SomeMethod()= 0」和「SomeMethod()抽象」有什麼區別嗎? – Lopper 2009-12-05 01:44:52
No. = 0是C++語法,但C++/CLI也支持它。 – 2009-12-05 02:19:46
@nobugz:謝謝! – Lopper 2009-12-05 02:46:20