Код: Выделить всё
class PASCALIMPLEMENTATION TGraphicControl : public TControl
{
typedef TControl inherited;
private:
Vcl::Graphics::TCanvas* FCanvas;
MESSAGE void __fastcall WMPaint(Winapi::Messages::TWMPaint &Message);
protected:
virtual void __fastcall Paint();
__property Vcl::Graphics::TCanvas* Canvas = {read=FCanvas};
public:
__fastcall virtual TGraphicControl(System::Classes::TComponent* AOwner);
__fastcall virtual ~TGraphicControl();
};
В результате, если я объявляю класс, подобный:
class MyControl : public TGraphicControl
{
public:
MyControl(TComponent *Owner);
void __fastcall Paint() override;
};
< /code>
Компилятор выпустит эти предупреждения: < /p>
MyControl.h(18): 'MyControl' overrides a member function but is not marked 'override'
Vcl.Controls.hpp(2642): overridden virtual function is here
< /code>
Странно! Это расширение языка Delphi? И если да, то какая виртуальная функция члена будет генерировать компилятор из виртуального конструктора? Или это просто несоответствие в реализации компилятора?
Подробнее здесь: https://stackoverflow.com/questions/794 ... nstructors
Мобильная версия