Login
Хочу научится
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 стал-бы медленно програмировать скажем этот калькулятор, вникая в основы языка. Рано или поздно, начнёшь разбираться что куда. Во всех этих странных, на первый взгляд "заморочках".
Потом задачку усложнил-бы и сделал-бы сам для себя что-то более прикладное и действительно нужное, но не сложное. И так шаг за шагом, день за днём. Однажды поймаешь себя на мысли, что начало получаться и даже без подсмотра в книжку :-)
Как-бы поступил я сейчас на Вашем месте.
Сгрузил-бы Eclipse или NetBeans для начала.
Придумал-бы себе прикладную задачку... типа "Калькулятор" или "Блокнот" или "Простой текстовый редактор" для начала.
Набрал-бы в google "Java ist auch eine Insel" сгрузил-бы PDF по Java. Например тут: http://winfuture.de/downloadvorschalt%2C2062.html
Книжка эта очень доступная для понимания. С нуля, так сказать. От элементарных вещей, до достаточно продвинутых. Про концепции в Обьекто-ориентированном Программировании типа MVC (Modell-View-Controller) тоже там есть. Там всё понятно даже для самых-пресамых блондинок (я ни на кого не намекаю).
Потом неторопясь, опираясь на этот PDF и прочие сайты по Java стал-бы медленно програмировать скажем этот калькулятор, вникая в основы языка. Рано или поздно, начнёшь разбираться что куда. Во всех этих странных, на первый взгляд "заморочках".
Потом задачку усложнил-бы и сделал-бы сам для себя что-то более прикладное и действительно нужное, но не сложное. И так шаг за шагом, день за днём. Однажды поймаешь себя на мысли, что начало получаться и даже без подсмотра в книжку :-)
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)
NEW 14.08.09 01:02
in Antwort anly 13.08.09 22:48
раздражают деструкторы которые вызваются когда захотят.
-----
Они вызываются нормально - когда есть возможность их выполнить. А в большинстве случаев достаточно GC...
Для остального есть IDisposable...
-----
Они вызываются нормально - когда есть возможность их выполнить. А в большинстве случаев достаточно GC...
Для остального есть IDisposable...
NEW 14.08.09 10:54
in Antwort anly 13.08.09 22:48
ну дык, я тоже начинал с пайки специалиста и спектрума. но разговор был про то, что для изучения программирования на существующей аппаратной базе, С++ особо не нужен, поскольку он требует знания низкоуровневых деталей, которые в вашем случае были получены из ассемблера и С. Для изучения программирования какой-нибудь Squeak лучше подходит, поскольку учит программировать в терминах предметной области, а не компьютерных внутренностей
NEW 14.08.09 17:27
всё таки в С++ удобней: точно знаешь когда деструктор вызовется. Я на это часто полагаюсь. При этом не надо никакого дополнительного кода писать вокруг использования объекта.
Почему от этого отказались? Только для быстродействия что-ли? Типа не тратить время сейчас на то, что можно сделать потом.
in Antwort Murr 14.08.09 01:02
В ответ на:
Они вызываются нормально - когда есть возможность их выполнить. А в большинстве случаев достаточно GC...
Для остального есть IDisposable...
Они вызываются нормально - когда есть возможность их выполнить. А в большинстве случаев достаточно GC...
Для остального есть IDisposable...
всё таки в С++ удобней: точно знаешь когда деструктор вызовется. Я на это часто полагаюсь. При этом не надо никакого дополнительного кода писать вокруг использования объекта.
Почему от этого отказались? Только для быстродействия что-ли? Типа не тратить время сейчас на то, что можно сделать потом.
Проклят нарушающий межи ближнего своего (Втор.27:17)
NEW 14.08.09 18:18
in Antwort anly 14.08.09 17:27
всё таки в С++ удобней
-----
Да ну? Ну давай, раскажи как можно, имея только простой указатель на объект,
определить, можно ли вызывать его деструктор...
При этом не надо никакого дополнительного кода
-----
Какой избыточный код требуется в C#? Даже delete не нужен... выйдет из области
существования и будет удален, когда это возможно.
Типа не тратить время сейчас на то, что можно сделать потом.
------
Быстродействие тут не причем. Причем - трудозатраты на написание и обслуживание
кода, манипулирующего объектами... он не всегда элементарный...
-----
Да ну? Ну давай, раскажи как можно, имея только простой указатель на объект,
определить, можно ли вызывать его деструктор...
При этом не надо никакого дополнительного кода
-----
Какой избыточный код требуется в C#? Даже delete не нужен... выйдет из области
существования и будет удален, когда это возможно.
Типа не тратить время сейчас на то, что можно сделать потом.
------
Быстродействие тут не причем. Причем - трудозатраты на написание и обслуживание
кода, манипулирующего объектами... он не всегда элементарный...
NEW 14.08.09 20:28
Ну дык GC же .
in Antwort anly 14.08.09 17:27
В ответ на:
Почему от этого отказались? Только для быстродействия что-ли? Типа не тратить время сейчас на то, что можно сделать потом.
Почему от этого отказались? Только для быстродействия что-ли? Типа не тратить время сейчас на то, что можно сделать потом.
Ну дык GC же .
NEW 14.08.09 21:34
std::has_virtual_destructor<typeof(*ptr)>::value => true/false
in Antwort Murr 14.08.09 18:18
В ответ на:
Да ну? Ну давай, раскажи как можно, имея только простой указатель на объект,
определить, можно ли вызывать его деструктор...
Да ну? Ну давай, раскажи как можно, имея только простой указатель на объект,
определить, можно ли вызывать его деструктор...
std::has_virtual_destructor<typeof(*ptr)>::value => true/false
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?
-----
А прочитать внимательно? - Там же указано - простой ( plain, dumb ) указатель.
Все остальное - RTL - позволит\непозволит... это же не Паскаль с гарантированным
TObject в базе и виртуальными конструкторами и деструкторами...
А что будет с остальными указателями и ссылками на объект? Автоматом обнулятся?
Или как обычно - повторное освобождение и последующее AV?
NEW 14.08.09 22:20
in Antwort Murr 14.08.09 22:09
14.08.09 22:34
in Antwort Chipolino 14.08.09 22:20
"всё таки в С++ удобней" - так где же удобнее - в Плюсах или Шарпе?
В Шарпе GC решает упомянутые проблемы...
В Шарпе GC решает упомянутые проблемы...
NEW 14.08.09 23:25
Насчет удобства не ко мне , не мой пост .
Конечно шарп как язык намного приятнее плюсов ,
но реализации г. IMHO ;-)
in Antwort Murr 14.08.09 22:34
В ответ на:
"всё таки в С++ удобней" - так где же удобнее - в Плюсах или Шарпе?
В Шарпе GC решает упомянутые проблемы...
"всё таки в С++ удобней" - так где же удобнее - в Плюсах или Шарпе?
В Шарпе GC решает упомянутые проблемы...
Насчет удобства не ко мне , не мой пост .
Конечно шарп как язык намного приятнее плюсов ,
но реализации г. IMHO ;-)
NEW 14.08.09 23:41
in Antwort Chipolino 14.08.09 23:25
NEW 14.08.09 23:42
Что это должно значить? Нетипизированный кусок памяти?
in Antwort Murr 14.08.09 22:09
В ответ на:
Там же указано - простой ( plain, dumb ) указатель
Там же указано - простой ( plain, dumb ) указатель
Что это должно значить? Нетипизированный кусок памяти?
NEW 14.08.09 23:50
in Antwort Chipolino 14.08.09 23:25
Конечно шарп как язык намного приятнее плюсов ,
-----
Понятно, что не твой пост, но автор поста утверждает, что в Плюсах удобнее.
Для меня - удобнее Шарп. Можно продолжать холивор...
но реализации г. IMHO ;-)
-----
тююю... еще и реализации обсуждать... Я тут днями чуть голову не сломал на ограничителях
типов в шарповых шаблонах... до сих пор не до конца понимаю смысл new()... так что нафиг
все реализации, кроме используемой...
-----
Понятно, что не твой пост, но автор поста утверждает, что в Плюсах удобнее.
Для меня - удобнее Шарп. Можно продолжать холивор...
но реализации г. IMHO ;-)
-----
тююю... еще и реализации обсуждать... Я тут днями чуть голову не сломал на ограничителях
типов в шарповых шаблонах... до сих пор не до конца понимаю смысл new()... так что нафиг
все реализации, кроме используемой...

NEW 14.08.09 23:56
in Antwort scorpi_ 14.08.09 23:42
NEW 15.08.09 00:48
пардон, я С# уже давно не трогал, потому даже ключевых слов не помню. Я помню что есть некая возможность определить область при выходе из которой будет вызвана какаято стандартная функция объекта, типа так:
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;
in Antwort Murr 14.08.09 18:18
В ответ на:
всё таки в С++ удобней
-----
Да ну? Ну давай, раскажи как можно, имея только простой указатель на объект,
определить, можно ли вызывать его деструктор...
При этом не надо никакого дополнительного кода
-----
Какой избыточный код требуется в C#? Даже delete не нужен... выйдет из области
существования и будет удален, когда это возможно.
всё таки в С++ удобней
-----
Да ну? Ну давай, раскажи как можно, имея только простой указатель на объект,
определить, можно ли вызывать его деструктор...
При этом не надо никакого дополнительного кода
-----
Какой избыточный код требуется в 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)
NEW 15.08.09 02:41
in Antwort anly 15.08.09 00:48
Афигеть. И при таком знании ЯП ты делаешь выводы космической глупости об удобстве ЯП?
ЗЫ Искомое слово - using.
ЗЫ Искомое слово - using.
NEW 15.08.09 11:19
in Antwort scorpi_ 15.08.09 02:41
В ответ на:
Афигеть. И при таком знании ЯП ты делаешь выводы космической глупости об удобстве ЯП?
жаль что афигел. теперь чего по существу не дождусь...Афигеть. И при таком знании ЯП ты делаешь выводы космической глупости об удобстве ЯП?
Проклят нарушающий межи ближнего своего (Втор.27:17)