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

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Delphi - приемущества и недостатки, принимаются различные высказывания 
:(
    Опции темы
Artemios
Дата 21.1.2007, 01:58 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 405
Регистрация: 14.8.2006
Где: Саратов, Россия

Репутация: 10
Всего: 50



Цитата(Artemios)

Цитата (Beltar)
inline в BDS 2005 у Delphi тоже появилась.

Не удивлюсь, если к 2010 появятся и шаблоны smile либо метаклассы smile и перегрузки операторов smile


Цитата(Beltar)

Цитата (Artemios)
Не удивлюсь, если к 2010 появятся и шаблоны  либо метаклассы  и перегрузки операторов


А я удивлюсь (шаблонам не удивлюсь). 


Цитата(Beltar)
Сегодня в хелпе по BDS 2006 нашел перегрузку операторов


smile Медленно, но верно товарищи идут в правильном направлении smile



--------------------
fib = 1: 1: [ x+y | (x,y) <- zip fib (tail fib) ]
PM MAIL   Вверх
Romikgy
Дата 21.1.2007, 11:18 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Любитель-программер
****


Профиль
Группа: Участник Клуба
Сообщений: 7326
Регистрация: 11.5.2005
Где: Porto Franco Odes sa

Репутация: 3
Всего: 146



Цитата(Artemios @  21.1.2007,  00:58 Найти цитируемый пост)
Медленно, но верно товарищи идут в правильном направлении 

 smile т.е. к перерождению в питон ?  smile 


--------------------
Владение русской орфографией это как владение кунг-фу — истинные мастера не применяют его без надобности. 
smile

PM   Вверх
Alexeis
Дата 21.1.2007, 13:53 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Амеба
Group Icon


Профиль
Группа: Админ
Сообщений: 11743
Регистрация: 12.10.2005
Где: Зеленоград

Репутация: 14
Всего: 459



Цитата(Beltar @  20.1.2007,  22:25 Найти цитируемый пост)
Сегодня в хелпе по BDS 2006 нашел перегрузку операторов для структур в Delphi for Win32 и Delphi for .NET (у структур появились методы в Delphi 2005) и для классов в Delphi for .NET.


ГДЕ?????




--------------------
Vit вечная память.

Обсуждение действий администрации форума производятся только в этом форуме

гениальность идеи состоит в том, что ее невозможно придумать
PM ICQ Skype   Вверх
Daevaorn
Дата 21.1.2007, 13:57 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Комодератор
Сообщений: 2155
Регистрация: 29.11.2004
Где: Москва

Репутация: 5
Всего: 70



Цитата(Alexeis @  21.1.2007,  14:53 Найти цитируемый пост)
ГДЕ?????

Можно скачать http://www.turboexplorer.com/delphi и ощутить всю "мощь" реализации.
PM MAIL WWW   Вверх
Alexeis
Дата 21.1.2007, 14:14 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Амеба
Group Icon


Профиль
Группа: Админ
Сообщений: 11743
Регистрация: 12.10.2005
Где: Зеленоград

Репутация: 14
Всего: 459



Daevaorn, зачем мне скачивать, когда у меня и так есть и BDS 2006 и Turbo Delphi. 
   Где написано о перегрузке операторов? В первый раз слышу. Ни в одной статье об этом не слова. И в справке тоже не вижу.


--------------------
Vit вечная память.

Обсуждение действий администрации форума производятся только в этом форуме

гениальность идеи состоит в том, что ее невозможно придумать
PM ICQ Skype   Вверх
Beltar
Дата 21.1.2007, 15:34 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 627
Регистрация: 11.1.2006

Репутация: 2
Всего: 7



смотри раздел по структурам. Там и пример кода. Я сам офонарел.


--------------------
Опытный программист на C++ легко решает любые не существующие в Паскале проблемы. smile(с) я, хотя может и нет
Пищущий на C++ мужик. Даже если это мужик сидит в написанном на Delphi и жрущем паскалевскую библиотеку билдере.
PM MAIL   Вверх
Alexeis
Дата 21.1.2007, 15:45 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Амеба
Group Icon


Профиль
Группа: Админ
Сообщений: 11743
Регистрация: 12.10.2005
Где: Зеленоград

Репутация: 14
Всего: 459



Вот это дааа  smile 
Цитата

Records (advanced) 
In addition to the traditional record types, the Delphi language allows more complex and “class-like” record types. In addition to fields, records may have properties and methods (including constructors), class properties, class methods, class fields, and nested types. For more information on these subjects, see the documentation on Classes and Objects. Here is a sample record type definition with some “class-like” functionality.
Код

 type
  TMyRecord = record
    type
      TInnerColorType = Integer;
    var
      Red: Integer;
    class var
      Blue: Integer;
    procedure printRed();
    constructor Create(val: Integer);
    property RedProperty: TInnerColorType read Red write Red;
    class property BlueProp: TInnerColorType read Blue write Blue;
end;

constructor TMyRecord.Create(val: Integer);
begin
  Red := val;
end;

procedure TMyRecord.printRed;
begin
  writeln('Red: ', Red);
end;

Though records can now share much of the functionality of classes, there are some important differences between classes and records.
 
Records do not support inheritance. 
Records can contain variant parts; classes cannot. 
Records are value types, so they are copied on assignment, passed by value, and allocated on the stack unless they are declared globally or explicitly allocated using the New and Dispose function. Classes are reference types, so they are not copied on assignment, they are passed by reference, and they are allocated on the heap. 
Records allow operator overloading on the Win32 and .NET platforms; classes allow operator overloading only for .NET. 
Records are constructed automatically, using a default no-argument constructor, but classes must be explicitly constructed. Because records have a default no-argument constructor, any user-defined record constructor must have one or more parameters. 
Record types cannot have destructors. 
Virtual methods (those specified with the virtual, dynamic, and message keywords) cannot be used in record types. 
Unlike classes, record types on the Win32 platform cannot implement interfaces; however, records on the .NET platform can implement interfaces



--------------------
Vit вечная память.

Обсуждение действий администрации форума производятся только в этом форуме

гениальность идеи состоит в том, что ее невозможно придумать
PM ICQ Skype   Вверх
Амортизатор2
Дата 21.1.2007, 17:04 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 35
Регистрация: 6.2.2006

Репутация: 0
Всего: 2



Цитата(Artemios @  21.1.2007,  01:58 Найти цитируемый пост)
Не удивлюсь, если к 2010 появятся и шаблоны smile либо метаклассы smile и перегрузки операторов smile


А что, Дельфи разве не бросили? Я думал, он уже давно умер. Кто же им теперь занимется, после багланда?
PM MAIL   Вверх
Alexeis
Дата 21.1.2007, 17:06 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Амеба
Group Icon


Профиль
Группа: Админ
Сообщений: 11743
Регистрация: 12.10.2005
Где: Зеленоград

Репутация: 14
Всего: 459



Код

Declaring Operator Overloads 
Operator overloads are declared within classes or records, with the following syntax:
 type
   typeName = [class | record]
       class operator conversionOp(a: type): resultType;
       class operator unaryOp(a: type): resultType;
       class operator comparisonOp(a: type; b: type): Boolean;
       class operator binaryOp(a: type; b: type): resultType;
   end;
Implementation of overloaded operators must also include the class operator syntax:
 class operator typeName.conversionOp(a: type): resultType;
class operator typeName.unaryOp(a: type): resultType;
class operator typeName.comparisonOp(a: type; b: type): Boolean;
class operator typeName.binaryOp(a: type; b: type): resultType;
The following are some examples of overloaded operators:
 type
   TMyClass = class
     class operator Add(a, b: TMyClass): TMyClass;      // Addition of two operands of type TMyClass
     class operator Subtract(a, b: TMyClass): TMyclass; // Subtraction of type TMyClass
     class operator Implicit(a: Integer): TMyClass;     // Implicit conversion of an Integer to type TMyClass
     class operator Implicit(a: TMyClass): Integer;     // Implicit conversion of TMyClass to Integer
     class operator Explicit(a: Double): TMyClass;      // Explicit conversion of a Double to TMyClass
   end;

// Example implementation of Add
class operator TMyClass.Add(a, b: TMyClass): TMyClass;
begin
   // ...
end;

var
x, y: TMyClass;
begin
   x := 12;      // Implicit conversion from an Integer
   y := x + x;   // Calls TMyClass.Add(a, b: TMyClass): TMyClass
   b := b + 100; // Calls TMyClass.Add(b, TMyClass.Implicit(100))
end;





--------------------
Vit вечная память.

Обсуждение действий администрации форума производятся только в этом форуме

гениальность идеи состоит в том, что ее невозможно придумать
PM ICQ Skype   Вверх
Alexeis
Дата 21.1.2007, 18:46 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Амеба
Group Icon


Профиль
Группа: Админ
Сообщений: 11743
Регистрация: 12.10.2005
Где: Зеленоград

Репутация: 14
Всего: 459



Цитата(Амортизатор2 @  21.1.2007,  17:04 Найти цитируемый пост)
А что, Дельфи разве не бросили? Я думал, он уже давно умер. Кто же им теперь занимется, после багланда? 


Никто не бросал делфи. Все это происки конкурентов и дезинформация.


--------------------
Vit вечная память.

Обсуждение действий администрации форума производятся только в этом форуме

гениальность идеи состоит в том, что ее невозможно придумать
PM ICQ Skype   Вверх
Beltar
Дата 21.1.2007, 22:53 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 627
Регистрация: 11.1.2006

Репутация: 2
Всего: 7



CodeGear занимается. Выделились в отдельную компанию. Хотя, конечно, это плохо, у мелкой компании шансов меньше.
Им ИМХО вообще в первую очередь надо именно Delphi заниматься, так они имеют гарантированную поддержку паскальщиков и это всегда был их самый сильный продукт.


--------------------
Опытный программист на C++ легко решает любые не существующие в Паскале проблемы. smile(с) я, хотя может и нет
Пищущий на C++ мужик. Даже если это мужик сидит в написанном на Delphi и жрущем паскалевскую библиотеку билдере.
PM MAIL   Вверх
Artemios
Дата 21.1.2007, 23:17 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 405
Регистрация: 14.8.2006
Где: Саратов, Россия

Репутация: 10
Всего: 50



Цитата(Romikgy @  21.1.2007,  11:18 Найти цитируемый пост)
Цитата(Artemios)
Медленно, но верно товарищи идут в правильном направлении 

 smile т.е. к перерождению в питон ?

 smile Нет, в клон С++ с синтаксисом Паскаля smile До выразительности Питона Дельфям не дотянуться smile
Шучу, прошу не обижаться smile


--------------------
fib = 1: 1: [ x+y | (x,y) <- zip fib (tail fib) ]
PM MAIL   Вверх
Beltar
Дата 22.1.2007, 00:41 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 627
Регистрация: 11.1.2006

Репутация: 2
Всего: 7



Клона не будет из-за несколько разных подходов к написанию. Основная претензия сишников к Паскалю, это громоздкий синтаксис, всякие нельзя, и отсутствие некоторых фич, позволяющих немного сэкономить при наборе, хотя шаблон, например, можно заменить и копи-пастом. А паскальщик считает, что доверять программисту можно, как оператору на АЭС управление при аварии (система аварийной защиты просто не позволит человеку вмешаться) ибо, там где можно намудить это будет сделано обязательно.
Это под .NET все языки одинаковы и имеют возможности в рамках .NET. А от "выразительности" Питона упаси господи, пример со строками тут приводили. Спасибо, такого как-то не хочется.


--------------------
Опытный программист на C++ легко решает любые не существующие в Паскале проблемы. smile(с) я, хотя может и нет
Пищущий на C++ мужик. Даже если это мужик сидит в написанном на Delphi и жрущем паскалевскую библиотеку билдере.
PM MAIL   Вверх
Artemios
Дата 22.1.2007, 00:47 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 405
Регистрация: 14.8.2006
Где: Саратов, Россия

Репутация: 10
Всего: 50



Цитата(Beltar @  22.1.2007,  00:41 Найти цитируемый пост)
хотя шаблон, например, можно заменить и копи-пастом.

А вот это попрошу сказать всем, кто пользует STL и Boost smile

Цитата(Beltar @  22.1.2007,  00:41 Найти цитируемый пост)
А от "выразительности" Питона упаси господи, пример со строками тут приводили.

Пример с созданием окошка тоже особенно красив был smile


--------------------
fib = 1: 1: [ x+y | (x,y) <- zip fib (tail fib) ]
PM MAIL   Вверх
Beltar
Дата 22.1.2007, 09:59 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 627
Регистрация: 11.1.2006

Репутация: 2
Всего: 7



2 Artemios

Цитата

А вот это попрошу сказать всем, кто пользует STL и Boost


Я тебе по секрету скажу, но я все-таки за шаблоны, с копи-пастом я порой так обламывался, что на поиск глупых ошибок уходили часы. ;)


--------------------
Опытный программист на C++ легко решает любые не существующие в Паскале проблемы. smile(с) я, хотя может и нет
Пищущий на C++ мужик. Даже если это мужик сидит в написанном на Delphi и жрущем паскалевскую библиотеку билдере.
PM MAIL   Вверх
Ответ в темуСоздание новой темы Создание опроса
Правила ведения Религиозных войн
Smartov
1. Уважайте собеседника
2. Собеседник != враг
3. Старайтесь воздерживаться от тем вида "Windows Rulez" или "Linux Rulez"

С уважением, Smartov.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Религиозные войны | Следующая тема »


 




[ Время генерации скрипта: 0.0810 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.