русский
Germany.ruForen → Архив Досок→ Programmierung

Хочу научится

2524  1 2 3 4 5 6 7 alle
ZOCK посетитель29.07.09 20:41
ZOCK
NEW 29.07.09 20:41 
in Antwort knaz75 04.07.09 01:12
У каждого свой подход.. Есть те кто начинает с Delphi (или Pasсal), но я-бы не стал.. он действительно "другой" какой-то. Да и не так прост, как на первый взгляд кажется. Язык клёвый, надо отметить... жаль, что отмирает потихоньку.
Как-бы поступил я сейчас на Вашем месте.
Сгрузил-бы Eclipse или NetBeans для начала.
Придумал-бы себе прикладную задачку... типа "Калькулятор" или "Блокнот" или "Простой текстовый редактор" для начала.
Набрал-бы в google "Java ist auch eine Insel" сгрузил-бы PDF по Java. Например тут: http://winfuture.de/downloadvorschalt%2C2062.html
Книжка эта очень доступная для понимания. С нуля, так сказать. От элементарных вещей, до достаточно продвинутых. Про концепции в Обьекто-ориентированном Программировании типа MVC (Modell-View-Controller) тоже там есть. Там всё понятно даже для самых-пресамых блондинок (я ни на кого не намекаю).
Потом неторопясь, опираясь на этот PDF и прочие сайты по Java стал-бы медленно програмировать скажем этот калькулятор, вникая в основы языка. Рано или поздно, начнёшь разбираться что куда. Во всех этих странных, на первый взгляд "заморочках".
Потом задачку усложнил-бы и сделал-бы сам для себя что-то более прикладное и действительно нужное, но не сложное. И так шаг за шагом, день за днём. Однажды поймаешь себя на мысли, что начало получаться и даже без подсмотра в книжку :-)
#81 
anly завсегдатай13.08.09 22:48
anly
NEW 13.08.09 22:48 
in Antwort AlexOtt 08.06.09 15:49, Zuletzt geändert 13.08.09 22:53 (anly)
В ответ на:
не НАДО начинать с С++! это язык для людей, которые уже умеют программировать!
я начинал с ассемблера К580. Сам паял компьютер "Специалист". Потом на Синклере Z80 игрушку написал, не детскую, а солидную, с музыкой в АИгрике. Потом язык С. Учил по Ритчи и Керригану. Потом и по сей день уже лет 10 как - С++. Он мне больше всего нравится. С# знаю слегка, но раздражают деструкторы которые вызваются когда захотят.
Проклят нарушающий межи ближнего своего (Втор.27:17)
#82 
Murr коренной житель14.08.09 01:02
Murr
NEW 14.08.09 01:02 
in Antwort anly 13.08.09 22:48
раздражают деструкторы которые вызваются когда захотят.
-----
Они вызываются нормально - когда есть возможность их выполнить. А в большинстве случаев достаточно GC...
Для остального есть IDisposable...
#83 
AlexOtt знакомое лицо14.08.09 10:54
AlexOtt
NEW 14.08.09 10:54 
in Antwort anly 13.08.09 22:48
ну дык, я тоже начинал с пайки специалиста и спектрума. но разговор был про то, что для изучения программирования на существующей аппаратной базе, С++ особо не нужен, поскольку он требует знания низкоуровневых деталей, которые в вашем случае были получены из ассемблера и С. Для изучения программирования какой-нибудь Squeak лучше подходит, поскольку учит программировать в терминах предметной области, а не компьютерных внутренностей
#84 
anly завсегдатай14.08.09 17:27
anly
NEW 14.08.09 17:27 
in Antwort Murr 14.08.09 01:02
В ответ на:
Они вызываются нормально - когда есть возможность их выполнить. А в большинстве случаев достаточно GC...
Для остального есть IDisposable...

всё таки в С++ удобней: точно знаешь когда деструктор вызовется. Я на это часто полагаюсь. При этом не надо никакого дополнительного кода писать вокруг использования объекта.
Почему от этого отказались? Только для быстродействия что-ли? Типа не тратить время сейчас на то, что можно сделать потом.
Проклят нарушающий межи ближнего своего (Втор.27:17)
#85 
Murr коренной житель14.08.09 18:18
Murr
NEW 14.08.09 18:18 
in Antwort anly 14.08.09 17:27
всё таки в С++ удобней
-----
Да ну? Ну давай, раскажи как можно, имея только простой указатель на объект,
определить, можно ли вызывать его деструктор...
При этом не надо никакого дополнительного кода
-----
Какой избыточный код требуется в C#? Даже delete не нужен... выйдет из области
существования и будет удален, когда это возможно.
Типа не тратить время сейчас на то, что можно сделать потом.
------
Быстродействие тут не причем. Причем - трудозатраты на написание и обслуживание
кода, манипулирующего объектами... он не всегда элементарный...
#86 
  Chipolino свой человек14.08.09 20:28
NEW 14.08.09 20:28 
in Antwort anly 14.08.09 17:27
В ответ на:
Почему от этого отказались? Только для быстродействия что-ли? Типа не тратить время сейчас на то, что можно сделать потом.

Ну дык GC же .
#87 
  Chipolino свой человек14.08.09 21:34
NEW 14.08.09 21:34 
in Antwort Murr 14.08.09 18:18
В ответ на:
Да ну? Ну давай, раскажи как можно, имея только простой указатель на объект,
определить, можно ли вызывать его деструктор...

std::has_virtual_destructor<typeof(*ptr)>::value => true/false
#88 
Murr коренной житель14.08.09 22:09
Murr
NEW 14.08.09 22:09 
in Antwort Chipolino 14.08.09 21:34
std::has_virtual_destructor<typeof(*ptr)>::value => true/false
-----
А прочитать внимательно? - Там же указано - простой ( plain, dumb ) указатель.
Все остальное - RTL - позволит\непозволит... это же не Паскаль с гарантированным
TObject в базе и виртуальными конструкторами и деструкторами...
А что будет с остальными указателями и ссылками на объект? Автоматом обнулятся?
Или как обычно - повторное освобождение и последующее AV?
#89 
  Chipolino свой человек14.08.09 22:20
NEW 14.08.09 22:20 
in Antwort Murr 14.08.09 22:09
бла бла бла
ты конкретно скажи чего ты хочешь добиться ?
#90 
Murr коренной житель14.08.09 22:34
Murr
14.08.09 22:34 
in Antwort Chipolino 14.08.09 22:20
"всё таки в С++ удобней" - так где же удобнее - в Плюсах или Шарпе?
В Шарпе GC решает упомянутые проблемы...
#91 
  Chipolino свой человек14.08.09 23:25
NEW 14.08.09 23:25 
in Antwort Murr 14.08.09 22:34
В ответ на:
"всё таки в С++ удобней" - так где же удобнее - в Плюсах или Шарпе?
В Шарпе GC решает упомянутые проблемы...

Насчет удобства не ко мне , не мой пост .
Конечно шарп как язык намного приятнее плюсов ,
но реализации г. IMHO ;-)
#92 
  scorpi_ скептик14.08.09 23:41
NEW 14.08.09 23:41 
in Antwort Chipolino 14.08.09 23:25
В ответ на:
но реализации г. IMHO ;-)

В чём это выражается?
#93 
  scorpi_ скептик14.08.09 23:42
NEW 14.08.09 23:42 
in Antwort Murr 14.08.09 22:09
В ответ на:
Там же указано - простой ( plain, dumb ) указатель

Что это должно значить? Нетипизированный кусок памяти?
#94 
Murr коренной житель14.08.09 23:50
Murr
NEW 14.08.09 23:50 
in Antwort Chipolino 14.08.09 23:25
Конечно шарп как язык намного приятнее плюсов ,
-----
Понятно, что не твой пост, но автор поста утверждает, что в Плюсах удобнее.
Для меня - удобнее Шарп. Можно продолжать холивор...
но реализации г. IMHO ;-)
-----
тююю... еще и реализации обсуждать... Я тут днями чуть голову не сломал на ограничителях
типов в шарповых шаблонах... до сих пор не до конца понимаю смысл new()... так что нафиг
все реализации, кроме используемой...
#95 
Murr коренной житель14.08.09 23:56
Murr
NEW 14.08.09 23:56 
in Antwort scorpi_ 14.08.09 23:42
То, что ниже smart pointer.
http://forum.sources.ru/index.php?showtopic=191418
#96 
anly завсегдатай15.08.09 00:48
anly
NEW 15.08.09 00:48 
in Antwort Murr 14.08.09 18:18
В ответ на:
всё таки в С++ удобней
-----
Да ну? Ну давай, раскажи как можно, имея только простой указатель на объект,
определить, можно ли вызывать его деструктор...
При этом не надо никакого дополнительного кода
-----
Какой избыточный код требуется в C#? Даже delete не нужен... выйдет из области
существования и будет удален, когда это возможно.

пардон, я С# уже давно не трогал, потому даже ключевых слов не помню. Я помню что есть некая возможность определить область при выходе из которой будет вызвана какаято стандартная функция объекта, типа так:
Try
{
Объект а = new Объект
....
}
catch
{
// вот здесь эта функция и будет вызвана
}
Что то вроде, только конечно не try и catch, но я не помню какие ключслова. Вот описание этих блоков типа try и catch - и есть дополнительный труд.
В С++ десктуктор вызовется как только delete вызовешь. Но это мелочь, не слишком важно для меня. Меня больше волнуют объекты созданные в стеке без new.
в с++ их деструктор вызовется при выходе из области видимости.
{
A a;
...
...
// здесь будет вызван a.~a(), т.е. деструктор объекта a, даже если в "..." произошло исключение.
}
Такая фишка нужна не только для освобождения рессурсов (памяти, файлов и т.п.). Смысл - сделать чтото при выходе из области видимости. Вот простенькие классы чтобы не забыть записать переменную или булевкий флажок:
template< class T > class CSetRestore
{
T* m_p;
T m_v;
public:
CSetRestore( T* p, T v ){ m_p = p, m_v = *m_p, *m_p = v; }
~CSetRestore(){ *m_p = m_v; }
};
template< class T, T on, T off > class COnOff
{
T* m_p;
public:
COnOff( T* p ){ m_p = p, *m_p = on; }
~COnOff(){ *m_p = off; }
};
typedef COnOff<bool, true, false> COnOff_bool;
typedef COnOff<bool, false, true> COffOn_bool;
Проклят нарушающий межи ближнего своего (Втор.27:17)
#97 
  scorpi_ скептик15.08.09 02:41
NEW 15.08.09 02:41 
in Antwort anly 15.08.09 00:48
Афигеть. И при таком знании ЯП ты делаешь выводы космической глупости об удобстве ЯП?
ЗЫ Искомое слово - using.
#98 
  scorpi_ скептик15.08.09 02:44
NEW 15.08.09 02:44 
in Antwort Murr 14.08.09 23:56
И чем же чиполиновский ptr не raw pointer?
#99 
anly завсегдатай15.08.09 11:19
anly
NEW 15.08.09 11:19 
in Antwort scorpi_ 15.08.09 02:41
В ответ на:
Афигеть. И при таком знании ЯП ты делаешь выводы космической глупости об удобстве ЯП?
жаль что афигел. теперь чего по существу не дождусь...
Проклят нарушающий межи ближнего своего (Втор.27:17)
1 2 3 4 5 6 7 alle