Код: Выделить всё
Vcl.Controls.hppclass 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();
};
< /code>
В результате, если я объявляю класс как: < /p>
class MyControl : public TGraphicControl
{
public:
MyControl(TComponent *Owner);
void __fastcall Paint() override;
};
< /code>
Компилятор выпустит эти предупреждения: < /p>
mycontrol.h(18): 'mycontrol' переопределяет функцию члена но не помечен «переопределение»
vcl.controls.hpp(2642): переопределенная виртуальная функция здесь < /p>
< /blockquote>
Странно! Это расширение языка Delphi? И если да, то какая виртуальная функция члена будет генерировать компилятор из виртуального конструктора? Или это просто несоответствие в реализации компилятора?
Подробнее здесь: https://stackoverflow.com/questions/794 ... nstructors
Мобильная версия