Về cơ bản, tôi muốn chức năng trình biên dịch C# của từ khóa override
trong mã C++ của tôi.Có cách nào để gắn cờ (tại thời gian biên dịch) các phương thức "ghi đè" có chữ ký không khớp với chữ ký cơ sở không?
class Base
{
virtual int foo(int) const;
};
class Derived : public Base
{
virtual int foo(int); // wanted to override Base, but forgot to declare it const
};
Như chúng ta đã biết, mã trên sẽ biên dịch tốt, nhưng mang lại một số hành vi thời gian chạy lạ. Tôi rất thích trình biên dịch C++ của tôi để bắt thực hiện kém của tôi với một cái gì đó giống như từ khóa override
của C#. Có bất kỳ từ khóa nào như "ghi đè" được đưa vào C++ hay chúng tôi bị kẹt với #define override virtual
để thể hiện ý định của chúng tôi? (thực sự, tôi không làm điều này - Tôi ghét sử dụng bộ tiền xử lý để "mở rộng" ngôn ngữ).
lời xin lỗi đến Naveen - của bạn là câu trả lời "tương lai" chính xác; Tuy nhiên, cho nhu cầu hiện tại của tôi (tôi sử dụng VS2005), công trình này !! Tôi đã gắn thẻ câu trả lời này là "trả lời" câu hỏi của tôi, nhưng câu trả lời của +1 Naveen – franji1