2010-09-24 51 views
6

Tôi có lớp .NET_4 Managed C++ mà tôi lấy được từ lớp cơ sở .NET_4 được viết bằng C#."C# lớp cơ sở chức năng ảo" - "ghi đè trong lớp học quản lý C++"

C# cơ sở lớp:

namespace Core 
{ 
    public class ResourceManager 
    { 
    public class _Resource 
    { 
     public virtual void Delete() {} 
    } 
    } 
} 

Managed C++ lớp:

namespace Input.DI 
{ 
    public ref class Mouse : ResourceManager::_Resource 
    { 
    public: 
    virtual void Delete() {} 
    }; 
} 

Đây là lỗi tôi nhận được:

'Input :: DI :: Chuột: : Xóa ': khớp với phương thức lớp cơ sở ref' Core :: ResourceManager :: _ Resource :: Delete ', nhưng không được đánh dấu' new 'hoặc' override '; 'mới' (và 'ảo') được giả định

Cú pháp C++ được quản lý đúng để ghi đè hàm virtual từ lớp C# là gì?

Trả lời

6

Bạn đặt overrideafter the function signature.

//MANAGED C++ CLASS 
namspace Input.DI 
{ 
    public ref class Mouse : ResourceManager::_Resource 
    { 
    public: 
    virtual void Delete() override {} 
    }; 
} 
+0

Lưu ý rằng bạn có lỗi đánh máy (phải được sao chép từ OP) bằng _namspace_. Điều đó nên đọc 'không gian tên'. Tôi không muốn đề xuất chỉnh sửa (tôi dưới 2k) vì tôi không thể cải thiện thêm câu trả lời của bạn – Tas

Các vấn đề liên quan