Здравствуйте, lepis, Вы писали:
L>Здравствуйте, __LP, Вы писали:
__L>>Учи С++.
L>в том-то и проблема, что именно С надо учить... С++ учил я еще в техникуме... намного проще, как мне кажется... но обстоятельства заставляют учить С...
Здравствуйте, Socrat, Вы писали:
S>Здравствуйте, lepis, Вы писали:
L>>Здравствуйте, __LP, Вы писали:
__L>>>Учи С++.
L>>в том-то и проблема, что именно С надо учить... С++ учил я еще в техникуме... намного проще, как мне кажется... но обстоятельства заставляют учить С...
S>Берем С++ и убираем оттуда все лишнее...
Ага и получится С с классами. Не понимаю, как можно знать С++ без знания основ С
ИМХО эта книга для программиста на С то же самое, что и книга Страуструпа "Язык программирования С++" для программиста на С++ — наверняка лучшая из доступных книг по теме.
Of course, the code must be complete enough to compile and link.
Здравствуйте, fay, Вы писали:
L>>>в том-то и проблема, что именно С надо учить... С++ учил я еще в техникуме... намного проще, как мне кажется... но обстоятельства заставляют учить С...
S>>Берем С++ и убираем оттуда все лишнее...
fay>Ага и получится С с классами.
Лишнее — это и классы с методами...
fay>Не понимаю, как можно знать С++ без знания основ С
fay>>Не понимаю, как можно знать С++ без знания основ С
Что такое С++ без основ С ? С и С++ два разных языка. С++ имеет часть, схожую с С, синтаксис, конструкции, выражения, и т.д. Но эта часть — все равно С++. Так что это — неотъемлемая часть С++, а не основы С.
Другое дело, что автор явно преувеличивает. Если для него С++ в техникуме был прост, то о С ему уже не нужно много
нового узнавать. Схожие части С и С++ это уже процентов на 90 С, за вычетом всяких досадных различий.
----Knowing C is a prerequisite for learning C++, right?
Bjarne:
Wrong. The common subset of C and C++ is easier to learn than C. There will be less type errors to catch manually (the C++ type system is stricter and more expressive), fewer tricks to learn (C++ allows you to express more things without circumlocution), and better libraries available. The best initial subset of C++ to learn is not "all of C".
Of course, the code must be complete enough to compile and link.
Здравствуйте, Lorenzo_LAMAS, Вы писали:
fay>>>Не понимаю, как можно знать С++ без знания основ С
L_L>Что такое С++ без основ С ? С и С++ два разных языка. С++ имеет часть, схожую с С, синтаксис, конструкции, выражения, и т.д. Но эта часть — все равно С++. Так что это — неотъемлемая часть С++, а не основы С. L_L>Другое дело, что автор явно преувеличивает. Если для него С++ в техникуме был прост, то о С ему уже не нужно много L_L>нового узнавать. Схожие части С и С++ это уже процентов на 90 С, за вычетом всяких досадных различий.
Ему ничего нового не нужно узнавать. Нужно только узнать, какая часть C++ относится к C, а какая — нет. А различий не так уж и много: классы с методами (операторами), шаблоны и исключения. Плюс библиотеки, основынные на этих трех.
S>Ему ничего нового не нужно узнавать. Нужно только узнать, какая часть C++ относится к C, а какая — нет. А различий не так уж и много: классы с методами (операторами), шаблоны и исключения. Плюс библиотеки, основынные на этих трех.
Есть несколько не очень значительных моментов-различий помимо названных тобой в некоторых местах "общего подмножества" С и С++. Но вообще я не верю автору. Т.е. если бы С++ он знал, у него не возникло вопросов по С и книге
Кернигана Ритчи.
Of course, the code must be complete enough to compile and link.
Здравствуйте, Lorenzo_LAMAS, Вы писали:
S>>Ему ничего нового не нужно узнавать. Нужно только узнать, какая часть C++ относится к C, а какая — нет. А различий не так уж и много: классы с методами (операторами), шаблоны и исключения. Плюс библиотеки, основынные на этих трех.
Угу. добавь наследование и все, что из этого вытекает...
L_L>Есть несколько не очень значительных моментов-различий помимо названных тобой в некоторых местах "общего подмножества" С и С++. Но вообще я не верю автору. Т.е. если бы С++ он знал, у него не возникло вопросов по С и книге L_L>Кернигана Ритчи.
Дак это и необязательно, ведь С++ поддерживает несколько парадигм программирования
Простейшие базовые конструкции С++, необходимые для написания программ: объявления, определения функций, циклы, выражения, типы и т.д они и в С такие (или почти такие). Так что после изучения С++ в техникуме, автору практически ничего не надо делать для перехода на С — только почитать про различия в общем подмножестве С и С++. И необязательно даже читать книгу К&Р — есть вещи и получше, и посовременнее — буквально несколько недель назад проскакивала ссылка на книгу, в которой проводится детальный анализ общих подмножеств С и С++.
А вот если автор не знает С++, то тогда К и Р ему в руки и вперед!
Of course, the code must be complete enough to compile and link.
Здравствуйте, Lorenzo_LAMAS, Вы писали:
fay>>Я не верю, что автор знает OOP.
L_L>Дак это и необязательно, ведь С++ поддерживает несколько парадигм программирования
L_L>Простейшие базовые конструкции С++, необходимые для написания программ: объявления, определения функций, циклы, выражения, типы и т.д они и в С такие (или почти такие). Так что после изучения С++ в техникуме, автору практически ничего не надо делать для перехода на С — только почитать про различия в общем подмножестве С и С++. И необязательно даже читать книгу К&Р — есть вещи и получше, и посовременнее — буквально несколько недель назад проскакивала ссылка на книгу, в которой проводится детальный анализ общих подмножеств С и С++.
Тогда (повторяюсь) это получится С с калассами, а не ++...
L_L>А вот если автор не знает С++, то тогда К и Р ему в руки и вперед!
Если он пишет, что думает, что знает его — то никакой K&R ему уже не поможет...
Здравствуйте, Sm0ke, Вы писали:
S>Если вы знаете C++, то достаточно рассмотреть его отличия от C.
S>в C нет:
S>-перегрузки функций и операторов { void fn(char c); void fn(float f); } S>-классов (а значит конструкторов, деструкторов и вообще методов) S>-ссылок { int a; int & b= a; void fn(int & i); } S>-обработки исключений S>-шаблонов //template
S>Надеюсь ничего не забыл.
Только одно — наследование, и все что с этим связано (см другую ветку)...
Hello, Sm0ke, you wrote:
> Если вы знаете C++, то достаточно рассмотреть его отличия от C.
> в C нет:
> -перегрузки функций и операторов { void fn(char c); void fn(float f); } > -классов (а значит конструкторов, деструкторов и вообще методов) > -ссылок { int a; int & b= a; void fn(int & i); } > -обработки исключений > -шаблонов //template
> Надеюсь ничего не забыл.
Еще нет констант. ( void f(char const *); int const i = 1; )
Еще все локальные переменные можно объявлять только в начале блока.
Hello, _DAle_, you wrote:
gbt>>Еще нет констант. ( void f(char const *); int const i = 1; ) gbt>>Еще все локальные переменные можно объявлять только в начале блока.
> А если почитать ISO/IEC 9899:1999 ?
Здравствуйте, fay, Вы писали:
fay>Здравствуйте, Sm0ke, Вы писали:
S>>Если вы знаете C++, то достаточно рассмотреть его отличия от C.
S>>в C нет:
S>>-перегрузки функций и операторов { void fn(char c); void fn(float f); } S>>-классов (а значит конструкторов, деструкторов и вообще методов) S>>-ссылок { int a; int & b= a; void fn(int & i); } S>>-обработки исключений S>>-шаблонов //template
S>>Надеюсь ничего не забыл. fay>Только одно — наследование, и все что с этим связано (см другую ветку)...