проблема с классами

Общие вопросы программирования, алгоритмы и т.п.

Модератор: Модераторы

проблема с классами

Сообщение PapaNT » 02.10.2009 17:00:35

Докатился таки до классов в FPC. Попробовал создать свой первый класс
Код: Выделить всё
  PFileList = ^TFileList;
  TFileList = Class Public
    list    : array of ListRec;
    StartDIR ,    CurrentDir : AnsiString;
    Function AllDirInList(Var Pos : LongWord) : boolean;
  end;

но ошибка компиляции меня ставит в тупик...
MY_FILE.PAS(27,21) Error: Identifier not found "Class"
MY_FILE.PAS(27,21) Error: Error in type definition
MY_FILE.PAS(27,21) Fatal: Syntax error, ";" expected but "identifier PUBLIC" found
MY_FILE.PAS(0) Fatal: Compilation aborted
PapaNT
постоялец
 
Сообщения: 167
Зарегистрирован: 11.09.2009 12:06:46
Откуда: Москва

Re: проблема с классами

Сообщение Mr.Smart » 02.10.2009 17:21:03

PapaNT
Что вам сказать.... Читайте документацию по Object Pascal :wink:
Mr.Smart
долгожитель
 
Сообщения: 1796
Зарегистрирован: 29.03.2008 01:01:11
Откуда: из леса!

Re: проблема с классами

Сообщение PapaNT » 02.10.2009 17:47:15

пример из Objet Pascal взят здесь: http://www.interface.ru/home.asp?artId=3567
Код: Выделить всё
    type
      date = class
      private
        dd, mm, yy: integer;
      public
        procedure init (d, m, y: integer);
        function month: integer;
        function day: integer;
        function year: integer;
      end;

и этот пример соответствует и учебнику В.В. Фаронов Delphi Программирование на языке высокого уровня (ISBN 5-8046-0008-7), но не компилится :(
Если сможете предложить нечто иное и удобоваримое, то буду признателен!
PapaNT
постоялец
 
Сообщения: 167
Зарегистрирован: 11.09.2009 12:06:46
Откуда: Москва

Re: проблема с классами

Сообщение v-t-l » 02.10.2009 17:52:12

Я бы написал еще
Код: Выделить всё
{$mode objfpc}{$H+}
uses Classes;
v-t-l
энтузиаст
 
Сообщения: 733
Зарегистрирован: 13.05.2007 16:27:22
Откуда: Belarus

Re: проблема с классами

Сообщение Mr.Smart » 02.10.2009 17:54:52

Добавьте в начале текста программы после определения program или unit следующую директиву:
Код: Выделить всё
{$mode objfpc}

или
Код: Выделить всё
{$mode delphi}


Добавлено спустя 56 секунд:
v-t-l
кстати модуль Classes необязателен :wink:
Mr.Smart
долгожитель
 
Сообщения: 1796
Зарегистрирован: 29.03.2008 01:01:11
Откуда: из леса!

Re: проблема с классами

Сообщение Vadim » 02.10.2009 18:00:26

PapaNT
Единственная Ваша ошибка в том, что Вы черезвычайно невнимательно читаете. ;)
У Фаронова стоит волшебное слово type, а у Вас его нет. Все остальные ошибки точно такие же.
Боюсь помочь Вам невозможно в принципе. ;)
Vadim
долгожитель
 
Сообщения: 4112
Зарегистрирован: 05.10.2006 08:52:59
Откуда: Красноярск

Re: проблема с классами

Сообщение PapaNT » 02.10.2009 18:30:47

прошу прощения за то, что не прокопипастил type. Подозревалось, что оно само собою разумеется.
PapaNT
постоялец
 
Сообщения: 167
Зарегистрирован: 11.09.2009 12:06:46
Откуда: Москва

Re: проблема с классами

Сообщение Дож » 03.10.2009 10:15:35

Vadim
Очень интересная у вас теория, особенно при условии, что компилятор не ругался на "PFileList = ^TFileList;" и выдал "Error in type definition", а не что-то еще. Вы телепат :)
Аватара пользователя
Дож
энтузиаст
 
Сообщения: 899
Зарегистрирован: 12.10.2008 16:14:47

Re: проблема с классами

Сообщение Vadim » 03.10.2009 13:14:05

Дож
Я человек скромный и у меня не было задачи написать книгу "Классы для чайников за 24 часа" объёмом в 1024 страницы и двумя прилагающимися DVD. :) Хотелось только обратить внимание человека, что читать книги нужно внимательно и тогда подавляющее большинство ошибок просто не возникнут. :)
Лично для меня, прочитав книгу Фаронова получить подобные ошибки - это нечто уму непостижимо. Я в своё время учился тоже на книгах Фаронова, поэтому знаю о чём говорю. :)
Vadim
долгожитель
 
Сообщения: 4112
Зарегистрирован: 05.10.2006 08:52:59
Откуда: Красноярск

Re: проблема с классами

Сообщение Дож » 03.10.2009 14:59:22

Vadim
Хотелось только обратить внимание человека, что читать книги нужно внимательно

А мне хотелось бы обратить внимание на то, что читать сообщения других тоже нужно внимательно и давать советы по существу.

Высказывание "Боюсь помочь Вам невозможно в принципе." слишком сильное для скромного человека, таким и обидеть можно.

Я в своё время учился тоже на книгах Фаронова, поэтому знаю о чём говорю.

Если вы не прочли того, что было написано выше, то я вкраце перескажу: проблема не в том, что человек неправильно переписал код из Фаронова, а в том, что он не знал как эту программу (написанную на дельфи) откомпилировать во free pascal'е.
Последний раз редактировалось Дож 03.10.2009 15:03:04, всего редактировалось 1 раз.
Аватара пользователя
Дож
энтузиаст
 
Сообщения: 899
Зарегистрирован: 12.10.2008 16:14:47

Re: проблема с классами

Сообщение Vadim » 03.10.2009 15:02:46

Дож писал(а):А мне хотелось бы обратить внимание на то, что читать сообщения других тоже нужно внимательно и давать советы по существу.

Нисколько не сомневаюсь, что Вы сообщение читали черезвычайно внимательно. Вот только не вижу Ваших советов "по существу". Интересно, почему? :)
Vadim
долгожитель
 
Сообщения: 4112
Зарегистрирован: 05.10.2006 08:52:59
Откуда: Красноярск

Re: проблема с классами

Сообщение Дож » 03.10.2009 15:04:14

Потому что вопрос исчерпан, если вы не заметили (см. правку выше).
Аватара пользователя
Дож
энтузиаст
 
Сообщения: 899
Зарегистрирован: 12.10.2008 16:14:47

Re: проблема с классами

Сообщение Vadim » 03.10.2009 15:31:16

Дож
Видимо Вы этого не заметили тоже раз продолжаете флудить? :)
Vadim
долгожитель
 
Сообщения: 4112
Зарегистрирован: 05.10.2006 08:52:59
Откуда: Красноярск

Re: проблема с классами

Сообщение Attid » 04.10.2009 15:07:55

сейчас как прийдет злой дядька , как поудаляет ту всех.
для разборов полетов прошу использовать подфорум "пообшаться" или личку. :evil:
Аватара пользователя
Attid
долгожитель
 
Сообщения: 2585
Зарегистрирован: 27.10.2006 17:29:15
Откуда: 44°32′23.63″N 41°2′25.2″E


Вернуться в Общее

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 12

Рейтинг@Mail.ru