Часовой пояс: UTC + 3 часа




Начать новую тему Новая тема / Ответить на тему Ответить  Сообщений: 159 • Страница 7 из 8<  1 ... 4  5  6  7  8  >
  Пред. тема | След. тема 
В случае проблем с отображением форума, отключите блокировщик рекламы
Автор Сообщение
 

Advanced member
Статус: Не в сети
Регистрация: 09.06.2003
Откуда: USSR
Цитата:
Например с указателями под Паскалем работать очень неудобно.

Абсолютно не согласен, лучше чем в Паскале еще нигде не сделали работу с указателями, а вот в VC я просто матерюсь когда приходится делать тупое присвоение двух указателей разного типа!!!

Цитата:
Например есть под Дельфи шаблоны? А ведь это очень мощное средство языка С++ (очень облегчает работу с динамическими массивами, я без CArray жить уже не могу)!

Да шаблонов нету, но я пока на си не начал писать вообще о них не подозревал и прекрасно жил, как в принципе и дальше живу и что самое интересно не могу понять пока что ,а на кой они вообще нужны? Да, CArray и тому подобные штуки очень облегчают жизнь в VC , но ведт можно создать один раз класс и не мучаться больше. Так в Delphi и делают :)



Партнер
 

Member
Статус: Не в сети
Регистрация: 01.08.2003
Ray Adams писал(а):
Цитата:
Например с указателями под Паскалем работать очень неудобно.

Абсолютно не согласен, лучше чем в Паскале еще нигде не сделали работу с указателями, а вот в VC я просто матерюсь когда приходится делать тупое присвоение двух указателей разного типа!!!

О static_cast, dynamic_cast не подозреваете? Или смущает именно возможность подобного преобразования?
Цитата:
Например есть под Дельфи шаблоны? А ведь это очень мощное средство языка С++ (очень облегчает работу с динамическими массивами, я без CArray жить уже не могу)!

Странно, а чем std::vector < std::vector <your_type> > не устраивает? Или boost::multi_array?
Цитата:
Да шаблонов нету, но я пока на си не начал писать вообще о них не подозревал и прекрасно жил, как в принципе и дальше живу и что самое интересно не могу понять пока что ,а на кой они вообще нужны?

О STL и Boost, я так понимаю, вам ничего не известно :(
Цитата:
Да, CArray и тому подобные штуки очень облегчают жизнь в VC , но ведт можно создать один раз класс и не мучаться больше. Так в Delphi и делают :)

Но можно ведь создать шаблонный класс и не создавать кучу однотипных классов. Можно еще создать шаблон шаблонного класса ака стратегию, а затем на ее основе конкретизировать шаблоны классов. По этому поводу читать Джосаттиса и Александреску.
З.Ы. Я очень рад, что учился не на Паскале. Скромный совет начинающим - учитесь программирвоать на С++ или Java. Именно с ООП, а не с процедурной парадигмы, нужно начинать обучение.


 

Advanced member
Статус: Не в сети
Регистрация: 09.06.2003
Откуда: USSR
Цитата:
Скромный совет начинающим - учитесь программирвоать на С++

Вот тут соглашусь, сам не рад что с Паскаля начинал, но пока что мне эхто не мешает. Главное хорошо уметь програмить, а на чем это уже второе если не третье дело. :)

Цитата:
О STL и Boost, я так понимаю, вам ничего не известно

В плане Delphi мне такие штуки не знакомы :)

Цитата:
Но можно ведь создать шаблонный класс и не создавать кучу однотипных классов. Можно еще создать шаблон шаблонного класса ака стратегию, а затем на ее основе конкретизировать шаблоны классов.

ммм, а какая разница ? Классы с наследованием или шаблоны?


 

Member
Статус: Не в сети
Регистрация: 15.04.2004
Откуда: Москва
Ray Adams
Цитата:
ммм, а какая разница ? Классы с наследованием или шаблоны?

Большая. Шаблон хорош тем, что я могу создать
std::vector<МОЙ СОБСТВЕННЫЙ ТИП> - т.е. что я в нем храню определяется на момент инстанцирования.
А вот если нет класса vector для моего типа - то мне придется его писать. :(
И еще, чего мне не хватает в Дельфях - макросов, а то inline функции я уже запарился писать..

_________________
Цель жизни - d20 по жизни...


 

Advanced member
Статус: Не в сети
Регистрация: 30.08.2003
Откуда: Санкт-Петербург
Цитата:
Абсолютно не согласен, лучше чем в Паскале еще нигде не сделали работу с указателями, а вот в VC я просто матерюсь когда приходится делать тупое присвоение двух указателей разного типа!!!

ИМХО, наоборот, в Паскале указатели ОЧЕНЬ неудобны по сравнению с Сишными.
Ray Adams
Пробовали к видеопамяти на Паскале обращаться???

_________________
{:€ дед в законе :-) нородный окодемег
почетный пользователь OpenSuSE 11.3
Ремонт и модернизация ноутбуков IBM (Lenovo) ThinkPad


 

Advanced member
Статус: Не в сети
Регистрация: 09.06.2003
Откуда: USSR
Цитата:
ИМХО, наоборот, в Паскале указатели ОЧЕНЬ неудобны по сравнению с Сишными.

Приведи пример неудобства на Паскале и удобства на Си :)

Цитата:
Пробовали к видеопамяти на Паскале обращаться???

Прекрасно обращался под Досом, без всяких проблем. :)
По типу к примеру вот такого, дата БИОСа

data:array[1..9] of char absolute $FFFF:5;

Я же говорил про неудобность делать приведение типов при работе с указателями на СИ, чего делать не надо на Delphi. Если у меня два указателя, один указывает на word другой на int то зачем при a=b я должен b приводить к типу а, если оба они по сути указатели! :)

Добавлено спустя 1 минуту, 28 секунд:
А так по самой работе оба языка отлично работают с указателями.


 

Member
Статус: Не в сети
Регистрация: 14.03.2004
Откуда: Москва
Ray Adams
Цитата:
Я же говорил про неудобность делать приведение типов при работе с указателями на СИ, чего делать не надо на Delphi. Если у меня два указателя, один указывает на word другой на int то зачем при a=b я должен b приводить к типу а, если оба они по сути указатели!

А это сделано, чтобы такие умные, как ты не делали ошибок. И код читабельнее. Правда приведение типов С++ меня бесит - пишу всегда класикой, в скобочках.

_________________
ФИЗТЕХ- рулез, ФАКИ - сила, Кванты тоже хорошо


 

Advanced member
Статус: Не в сети
Регистрация: 09.06.2003
Откуда: USSR
Цитата:
Правда приведение типов С++ меня бесит - пишу всегда класикой, в скобочках.

Вот видиш! :)
Я когда пишу свой код, я сам знаю что у меня и куда лепиться, так что на кой компилятор должен накладывать такие жестокие ограничения! :) И код хоть и читается легче, но уж совсем не меньше становится.


 

Advanced member
Статус: Не в сети
Регистрация: 30.08.2003
Откуда: Санкт-Петербург
Цитата:
data:array[1..9] of char absolute $FFFF:5;

Бррр. Что за ужасный код? А если потом приспичит поменять указатель? :)
Цитата:
если оба они по сути указатели!

Давай ты присвоишь указатель на класс указателю на инт и к последнему обратишься как к указателю на класс. Прога упадет :) А компилятор начнет ругаться, если явно не приводить

_________________
{:€ дед в законе :-) нородный окодемег
почетный пользователь OpenSuSE 11.3
Ремонт и модернизация ноутбуков IBM (Lenovo) ThinkPad


 

Advanced member
Статус: Не в сети
Регистрация: 09.06.2003
Откуда: USSR
Цитата:
Давай ты присвоишь указатель на класс указателю на инт и к последнему обратишься как к указателю на класс.

брр, а зчем мне такой ужас делать?

Кстати data:array[1..9] of char absolute $FFFF:5; очень даже нормальный код для паскаля :) ничего в нем страшного нету. Так как я привязываю переменную к ВСЕГДА стандартному адресу в памяти, правда это под ДОС было.
А если меняется адрес то:
data:^array[1..9] of char ;
data:=Pointer($FFFF); к примеру :)
Под Виндами я уже такое давно не делаю, хотя штука очень удобная если тебе надо к одному типу обратиться как к совершенно другому без явного и не явного приведения типа :) Очень удобно

Добавлено спустя 8 минут, 56 секунд:
Цитата:
авай ты присвоишь указатель на класс указателю на инт и к последнему обратишься как к указателю на класс.

Кстати все прекрасно сработает так как и долно работать!
Пример.
Код:
  TMyClass=class(TObject)
  public
        procedure DoSomethink();
  end;

procedure TMyClass.DoSomethink;
begin
     MessageBox(0,'Test','Test',0);
end;
//теперь код в обработчике для нажатия обычной кнопки

procedure TForm1.Button1Click(Sender: TObject);
var pI:^Integer;
    P:TMyClass;
begin
     P:=TMyClass.Create;
     pI:=@P;
     TMyClass(pI).DoSomethink;
     P.Free;
end;

так и должно работать
pI..DoSomethink; не сработает комппилятор даже не даст такое сделать, тоже самое можно сделать и на C++, тольк там вот это присваивание pI:=@P; придется делать с приведением типа, а тут не надо. Я про это и говорю, писать много лишнего кода приходится.


 

Member
Статус: Не в сети
Регистрация: 12.02.2004
Откуда: г. Новосибирск
Apexman Паскаль приучает структурировать код, и вырабатывает навыки структурирования кода.
Насчет использования Паскаля как учебного языка для начинающих-я только за (сам на нем учился, правда после Бейсика)!


 

Member
Статус: Не в сети
Регистрация: 01.08.2003
Т.е. в С-подобном синтаксисе, коим "страдают" большинство современных языков программирования, код очень неструктурированый? Отсутствие (вложенных) процедур в вводит в заблуждение, а объявления в любом месте кода - худшее из зол. ;)
Одно только наличие namespace в C++, package в Java дорогого стоит...


 

Advanced member
Статус: Не в сети
Регистрация: 09.06.2003
Откуда: USSR
Цитата:
а объявления в любом месте кода - худшее из зол. Wink

Не зудшее из зол, но тоже не азти вариант. Я понимаю это удобно и быстро, но переменные разбросаны бывают по всему коду, иди потом ищи где и что обьявлял. :)


 

Advanced member
Статус: Не в сети
Регистрация: 30.08.2003
Откуда: Санкт-Петербург
Цитата:
А компилятор начнет ругаться, если явно не приводить

Я про С. Что он правильно ругнется!
Цитата:
объявления в любом месте кода - худшее из зол

В С такого нет. Только в С++. зато удобно писать код, работающий со стековыми переменными.:
Цитата:
double a; <- глобальная переменная

какой-то код функции
....
{
int a; <-стековая переменная. Видна только внутри блока {....} А тереь предстаьте вместо int'а менее тривиальный класс. например, класс реализующей динамическое выделение памяти. Удобно!
}
....
какой-то код

Цитата:
Паскаль приучает структурировать код, и вырабатывает навыки структурирования кода.

Спорить не буду. Это так.
Цитата:
Отсутствие (вложенных) процедур в вводит в заблуждение

Это Вы про что?

Добавлено спустя 2 минуты, 49 секунд:
Цитата:
Кстати все прекрасно сработает так как и долно работать!

НЕЛОГИЧНО!

_________________
{:€ дед в законе :-) нородный окодемег
почетный пользователь OpenSuSE 11.3
Ремонт и модернизация ноутбуков IBM (Lenovo) ThinkPad


 

Member
Статус: Не в сети
Регистрация: 14.03.2004
Откуда: Москва
Ray Adams
Не все такие умные - ошибок неизбежать. Это наверное полезно для больших проектов.

Кто видел дополнительны своства перемнных( __atribite__ ) в Linux. Вот безграничный простор. Не то, что С. И локольные для потока, и регистровые и хз знает ещё какие(не разобралься пока)

_________________
ФИЗТЕХ- рулез, ФАКИ - сила, Кванты тоже хорошо


 

Advanced member
Статус: Не в сети
Регистрация: 09.06.2003
Откуда: USSR
Цитата:
НЕЛОГИЧНО!

Что именно не логично?


 

Advanced member
Статус: Не в сети
Регистрация: 30.08.2003
Откуда: Санкт-Петербург
Цитата:
Что именно не логично?

Что в Паскале можно указатели на разные типы друг другу присваивать без приведения типа.

_________________
{:€ дед в законе :-) нородный окодемег
почетный пользователь OpenSuSE 11.3
Ремонт и модернизация ноутбуков IBM (Lenovo) ThinkPad


 

Advanced member
Статус: Не в сети
Регистрация: 09.06.2003
Откуда: USSR
Root Все логично! Что такое указатель? Адрес памяти и все! А значить два адреса памяти можно присваивать друг к другу.


 

Advanced member
Статус: Не в сети
Регистрация: 30.08.2003
Откуда: Санкт-Петербург
Ray Adams
Ну, не знаю. Кому как :) Вот и сиди на Паскале :) а я на С :beer:
Все-таки, ИМХО, мы тут среды, а не языки обсуждаем. Ведь так?

_________________
{:€ дед в законе :-) нородный окодемег
почетный пользователь OpenSuSE 11.3
Ремонт и модернизация ноутбуков IBM (Lenovo) ThinkPad


 

Member
Статус: Не в сети
Регистрация: 15.04.2004
Откуда: Москва
Root
А можно сидеть и там и там:
GUI пишется на Дельфях (действительно быстро и компактный код),
а методы обработки данных требующие сложных алгоритмов, на Си или Ассёмблере, и все цепляется как dll.

_________________
Цель жизни - d20 по жизни...


Показать сообщения за:  Поле сортировки  
Начать новую тему Новая тема / Ответить на тему Ответить  Сообщений: 159 • Страница 7 из 8<  1 ... 4  5  6  7  8  >
-

Часовой пояс: UTC + 3 часа


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

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


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Перейти:  

Лаборатория














Новости

Создано на основе phpBB® Forum Software © phpBB Group
Русская поддержка phpBB | Kolobok smiles © Aiwan