Справочник функций

Ваш аккаунт

Войти через: 
Забыли пароль?
Регистрация
Информацию о новых материалах можно получать и без регистрации:

Почтовая рассылка

Подписчиков: 6317
Последний выпуск: 19.06.2015

где нужна точка с запятой?

2.0K
28 сентября 2014 года
alexandrv
38 / / 21.01.2010
Набрал в программе PascalABC программный код и при запуске получил ошибку ОЖИДАЛСЯ СИМВОЛ "ТОЧКА С ЗАПЯТОЙ" во второй строке после слова object
Но там она и не нужна. Помогите советом в чем ошибка?
Код:
Program primer;
Type tPredoc=object {В ЭТОЙ СТРОКЕ ОШИБКА}
   Name:string; {поле данных объекта}
   Procedure Declaration; {объявление методов объекта}
   Procedure MyName;
End;
tуре tSon= оbject(tPredoc) {Тип, наследующий tPredoc }
   procedure Declaration; {перекрытие методов предка}
   procedure МуName(Predoc : tPredoc);
end ;

tуре tGrandSon=object(tSon) {Тип, наследующий tSon}
   procedure Declaration ; {перекрытие методов предка}
end ;

const ded : tPredoc = ( Name : "Петров Николай Иванович");
   otec : tSon = ( Name : "Петров Сергей Николаевич");
   vnuk : tGrandSon = ( Name : "Петров Олег Сергеевич");
{раздел описания процедур и функций, где обязательно должны быть написаны все объявленные в объектных типах методы}
Procedure tPredoc.Declaration ;
{реализация метода объекта}
begin
   writeln ('Я - предок!');
end ;
Procedure tPredoc.MyName ;
{реализация метода объекта}
begin
   writeln('Я -', Name);
end;
BEGIN
   ded.Declaration ; {вызов методов общего предка}
   ded.МуName;
   writeln;
   otec.Declaration;
   otec.MyName(ded); { вызов методов объекта otec типа tSon}
   writeln;
   vnuk.Declaration; { вызов методов объекта vnuk типа tGrandSon}
   vnuk.MyName ( otec );
END.
445
28 сентября 2014 года
Meander
487 / / 04.09.2011
Попробуйте поставить точку с запятой, что-бы отделить секцию объявления типов во второй строке.
2.0K
29 сентября 2014 года
alexandrv
38 / / 21.01.2010
Не прокатит такой трюк
20K
29 сентября 2014 года
ellor!
198 / / 24.05.2012
Лучше использовать class, а не object. object - наследие прошлого, формально должно поддерживаться, а по факту устарело.

 
Код:
type
  TPredoc = class
    Name : String; {поле данных объекта}
    Procedure Declaration; virtual; {объявление методов объекта}
    Procedure MyName;
  end;

  TSon = class(TPredoc)
    procedure Declaration; override; {перекрытие методов предка}
  end;
2.0K
15 октября 2014 года
alexandrv
38 / / 21.01.2010
Я упростил программу до такого программного кода. НО теперь возникает ошибка в типизированной константе:ОШИБКА ПРЕОБРАЗОВАНИЯ ТИПОВ. Не подскажете почему?
Код:
Program primer;
Type tPredoc=class
   Name:string; {поле данных объекта}
   Procedure Declaration; {объявление методов объекта}
   Procedure MyName;
End;


const ded : tPredoc = ( Name : 'Петров Николай Иванович');
 
{раздел описания процедур и функций, где обязательно должны быть написаны все объявленные в объектных типах методы}
Procedure tPredoc.Declaration ;
{реализация метода объекта}
begin
   writeln ('Я - предок!');
end ;
Procedure tPredoc.MyName ;
{реализация метода объекта}
begin
   writeln('Я -', Name);
end;
BEGIN
   ded.Declaration ; {вызов методов общего предка}
   ded.МуName;
   
END.
20K
16 октября 2014 года
ellor!
198 / / 24.05.2012
Class не поддерживает объявления констант типа

 
Код:
const ded : tPredoc = ( Name : 'Петров Николай Иванович');
Объекты надо явно создавать и удалять.

Код:
var
  ded : tPredoc;
begin
  ded := tPredoc.Create;
  try
    ded.Name = 'Петров Николай Иванович';
    ded.Declaration;
    ded.MyName;
  finally
    ded.Free;
  end;
end.

Знаете кого-то, кто может ответить? Поделитесь с ним ссылкой.

Ваш ответ

Реклама на сайте | Обмен ссылками | Ссылки | Экспорт (RSS) | Контакты
Добавить статью | Добавить исходник | Добавить хостинг-провайдера | Добавить сайт в каталог