Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > Паскаль, Turbo Pascal, PascalABC.NET
Регистрация

Восстановить пароль

Купить рекламу на форуме - 42 тыс руб за месяц

Закрытая тема
Ваша тема закрыта, почему это могло произойти? Возможно,
Нет наработок или кода, если нужно готовое решение - создайте тему в разделе Фриланс и оплатите работу.
Название темы включает слова - "Помогите", "Нужна помощь", "Срочно", "Пожалуйста".
Название темы слишком короткое или не отражает сути вашего вопроса.
Тема исчерпала себя, помните, один вопрос - одна тема
Прочитайте правила и заново правильно создайте тему.
 
Опции темы Поиск в этой теме
Старый 19.11.2010, 14:47   #1
_-Re@l-_
C++, Java
Старожил
 
Аватар для _-Re@l-_
 
Регистрация: 10.04.2010
Сообщений: 2,665
По умолчанию Перегрузка операторов

Вот в TP оператор writeln можно использовать так:
Код:
writeln('Hello World!');
Или так:
Код:
writeln(F,'Hello World'); //где F - файловая переменная
Вот как дядьки Борланда это сделали, если в TP отсутствует перегрузка?Неужели без неё обошлось?
_-Re@l-_ вне форума
Старый 20.11.2010, 06:28   #2
maxionans
Форумчанин
 
Аватар для maxionans
 
Регистрация: 02.01.2010
Сообщений: 254
По умолчанию

Вообще-то Write/WriteLn это не операторы, а процедуры. И они являются частью языка, поэтому компилятор сам разруливает количество параметров и обработку согласно типа. Для всех остальных процедур такое недоступно.

Последний раз редактировалось mihali4; 23.11.2010 в 14:41.
maxionans вне форума
Старый 20.11.2010, 08:35   #3
_-Re@l-_
C++, Java
Старожил
 
Аватар для _-Re@l-_
 
Регистрация: 10.04.2010
Сообщений: 2,665
По умолчанию

Так то это операторы ввода вывода. . .
_-Re@l-_ вне форума
Старый 20.11.2010, 09:14   #4
maxionans
Форумчанин
 
Аватар для maxionans
 
Регистрация: 02.01.2010
Сообщений: 254
По умолчанию

Ты путаешь термины. операторы - это +, -, *, div и так далее. а write/read и прочие - это процедуры. Смотри, если я переопределю процедуру write - по-твоему она тоже будет оператором?

PS.
Цитата:
Сообщение от _-Re@l-_ Посмотреть сообщение
Так то это операторы ввода вывода. . .
Если так рассуждать, то BlockRead и BlockWrite - это тоже операторы ввода-вывода. В паскале таких операторов вообще нет. В си - есть.

Последний раз редактировалось mihali4; 23.11.2010 в 14:41.
maxionans вне форума
Старый 20.11.2010, 11:25   #5
_-Re@l-_
C++, Java
Старожил
 
Аватар для _-Re@l-_
 
Регистрация: 10.04.2010
Сообщений: 2,665
По умолчанию

Цитата:
если я переопределю процедуру write - по-твоему она тоже будет оператором?
Вот мне интересно, как ты переопределишь процедуры в паскале. В Делфи ладно, но в Паскале?
_-Re@l-_ вне форума
Старый 20.11.2010, 11:39   #6
maxionans
Форумчанин
 
Аватар для maxionans
 
Регистрация: 02.01.2010
Сообщений: 254
По умолчанию

А вот так:
Код:
program blabla;

uses
  Crt;

procedure WriteLn(const AText : String);
begin
  Write( 'Overloaded WriteLn: ', AText, #13#10 );
end;

begin
  ClrScr;
  WriteLn( 'Message!' );
  ReadLn;
end.
maxionans вне форума
Старый 20.11.2010, 12:23   #7
_-Re@l-_
C++, Java
Старожил
 
Аватар для _-Re@l-_
 
Регистрация: 10.04.2010
Сообщений: 2,665
По умолчанию

Спасибо, так оказывается в Паскале тоже по сути есть пространство имён...т.е.
Код:
program blabla;

uses
  Crt;

procedure WriteLn(const AText : String);
begin
  Write( 'Overloaded WriteLn: ', AText, #13#10 );
end;

begin
  ClrScr;
  WriteLn( 'Message!' );
  System.Writeln('Hello!');
  ReadLn;
end.
Я верно думаю?
_-Re@l-_ вне форума
Старый 20.11.2010, 12:39   #8
maxionans
Форумчанин
 
Аватар для maxionans
 
Регистрация: 02.01.2010
Сообщений: 254
По умолчанию

Конечно есть

Последний раз редактировалось mihali4; 23.11.2010 в 14:42.
maxionans вне форума
Старый 20.11.2010, 12:57   #9
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,229
По умолчанию

Цитата:
Спасибо, так оказывается в Паскале тоже по сути есть пространство имён...т.е.

Вот только добится такого же поведения, как у стандартной процедуры Write (Writeln) у Вас не получится - как совершенно верно отметил maxionans - это часть языка, поэтому компилятор вызов этих процедур заменяет на вызов РАЗНЫХ процедур, в зависимости от того, что Вы там написали в параметрах при их вызове...

Последний раз редактировалось mihali4; 23.11.2010 в 14:42.
Serge_Bliznykov вне форума
Старый 20.11.2010, 13:14   #10
_-Re@l-_
C++, Java
Старожил
 
Аватар для _-Re@l-_
 
Регистрация: 10.04.2010
Сообщений: 2,665
По умолчанию

Вот я лох, я то думал namespace это только в С++ и ему подобных....
_-Re@l-_ вне форума
Закрытая тема


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
перегрузка операторов mashuta_ya Общие вопросы C/C++ 0 01.10.2010 18:54
c++ перегрузка операторов pavel282 Помощь студентам 6 11.09.2010 20:35
Перегрузка операторов(С++) Сергей AfeR Помощь студентам 0 16.06.2010 18:34
Перегрузка операторов. Macb3th Общие вопросы C/C++ 5 01.04.2010 21:14
Перегрузка операторов, Организация перегрузки операторов chagin_yav Помощь студентам 2 12.05.2008 09:15