Конференция "FreePascal" » ООП не могу разобраться [Win32]
 
  • ximka (14.09.04 21:35) [0]
    У меня есть список объектов

     TSingleObj = class

                    Graph : TBitmap;

                    procedure Create(PGraph : TBitmap); virtual;
                    procedure Destroy;

                   end;

      TMoreObject = class(TObject)

                     public
                      procedure Create; virtual;
                      procedure Destroy; virtual;
                      procedure add(place : TBitmap);
                      //procedure delete(index : word);

                    end;

     TVisualObject = class(TMoreObject)

                      imgh : array of TImage;
                      base : TWinControl;

                      procedure Create;
                      procedure Destroy;

                      private
                        procedure Draw;
                        procedure Clear;

                      public
                        procedure Paint(baseo : TWinControl);

                     end;

    ....

    procedure TMoreObject.Create;
    begin
    SignleObjCnt := 0;
    end;

    ....

    procedure TVisualObject.Create;
    begin
    inherited Create;
    end;

    и после из другого модуля я вызываю метод create от объкта TVisualObject, и он пишет мне ошибку в процессе выполнения программы.

    Если вам не сложно, скажите в чем я ошибся, а также скажите где бы почитать про ООП в delphi.

    Заранее благодарен.
  • Cobalt © (14.09.04 23:51) [1]
    Мне так каатся, что надо бы тебе объявить конструктор, а не процедуру.
  • PVOzerski © (15.09.04 15:50) [2]
    >и после из другого модуля я вызываю метод create от объкта TVisualObject
    >Мне так каатся, что надо бы тебе объявить конструктор, а не процедуру.
    Я мне кажется, по изложенному вообще трудно судить о чем-либо. Но ясно, что если метод своим именем перекрывает предопределенный конструктор, класс должен бы иметь как минимум новый конструктор с другим именем. Хотя лучше метод Create не называть. То же - и касательно Destroy.
  • trofimich (01.10.04 12:48) [3]
    Думаю что ошибка из-за того что ты объявил в TMoreObject конструктор с директивой virtual. Попробуй написать override. Скорее всего в TObject конструктор и так уже виртуальный...
  • ximka (29.10.04 06:19) [4]
    Спасибо всем я нашел причину.
 
Конференция "FreePascal" » ООП не могу разобраться [Win32]
Есть новые Нет новых   [134430   +1][b:0][p:0]