2009-12-05 13 views

Trả lời

15

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; 
}; 
+4

Có sự khác biệt nào giữa việc khai báo "SomeMethod() = 0" và "SomeMethod() abstract" không? – Lopper

+1

No. = 0 là cú pháp C++ nhưng C++/CLI cũng hỗ trợ nó. –

+0

@nobugz: Cảm ơn! – Lopper

6

Bạn sử dụng abstract:

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

Có sự khác biệt giữa việc khai báo "SomeMethod() = 0" và "SomeMethod() trừu tượng"? – Lopper

+0

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 –

+0

@Reed Copsey: Cảm ơn! – Lopper