Tương đương với mã C# sau trong C++/CLI là gì?C++/CLI: Làm thế nào để khai báo lớp trừu tượng (trong C#) và phương thức trong C++/CLI?
public abstract class SomeClass
{
public abstract String SomeMethod();
}
Tương đương với mã C# sau trong C++/CLI là gì?C++/CLI: Làm thế nào để khai báo lớp trừu tượng (trong C#) và phương thức trong C++/CLI?
public abstract class SomeClass
{
public abstract String SomeMethod();
}
Chỉ cần trộn lên các từ khóa một chút để đi đến cú pháp chính xác. trừu tượng nằm ở mặt trước trong C# nhưng ở cuối C++/CLI. Giống như các từ khóa ghi đè, cũng được công nhận ngày hôm nay bởi trình biên dịch tuân thủ C++ 11, mong đợi nó tại số kết thúc của khai báo hàm. Giống như = 0
làm trong C++ truyền thống để đánh dấu một hàm trừu tượng:
public ref class SomeClass abstract {
public:
virtual String^ SomeMethod() abstract;
};
Bạn sử dụng abstract
:
public ref class SomeClass abstract
{
public:
virtual System::String^ SomeMethod() = 0;
}
Có sự khác biệt giữa việc khai báo "SomeMethod() = 0" và "SomeMethod() trừu tượng"? – Lopper
Không. Phương thức() = 0 là cách thức không C++/CLI (chỉ cần stnadard C++) để định nghĩa một lớp trừu tượng. Với C++/CLI, bạn có thể sử dụng nó, hoặc từ khóa trừu tượng mới. Tôi thích sử dụng bản gốc, vì nó chỉ là thói quen, và từ khóa trừu tượng là bối cảnh nhạy cảm trong trường hợp của một phương pháp, nhưng một trong hai công trình. Xem: http://msdn.microsoft.com/en-us/library/b0z6b513(VS.80).aspx –
@Reed Copsey: Cảm ơn! – Lopper
Có sự khác biệt nào giữa việc khai báo "SomeMethod() = 0" và "SomeMethod() abstract" không? – Lopper
No. = 0 là cú pháp C++ nhưng C++/CLI cũng hỗ trợ nó. –
@nobugz: Cảm ơn! – Lopper