peregrine, по моему скромному и неквалифицированному мнению,
из нулевого урока надо выкинуть: «компилируемый язык» и всё,
что дальше про компиляцию, линковку, библиотеки. Убрать само
упоминание про Страуструпа, на крайняк
строго запретить эту
книгу. И то, что знание Си сильно помогает — сомнительно.
В первом примере лучше не объяснять то, что всё равно непонятно.
Лучше придерживаться правила «хочу и буду». Т. е., просто сказать:
Надо делать так, так и так.
А вот здесь очень неточно:
«Не путайте знак присваивания
a=7 со знаком равенства
a==7. Первое выражение даст истину, так как функция присваивания вернёт
указатель на изменённый объект, т.е. на число
7.»
Правильнее как-то так: «Не путайте операцию присваивания
a=7 с операцией сравнения
a==7. Присваивание в Си++ — это именно
операция, вроде сложения. Операция сложения
2+3 даёт результат
5. Операция присваивания
a=7 даёт результат
7. И в Си++ можно
писать
a=b=c=3*3, это значит следующее:
a= ( b=( c=3*3 ) ), а словами — вычислить
3*3, результат записать в
c, теперь то,
что записано в
c, записать в
b, теперь то, что записано в
b, записать в
a. В итоге
a, b и c получат значения
9. И если вы пишете
if (a=7), то это значит:
1. Сделать
a равным
7.2. Сравнить результат
(7) с нулем. (А
7 никогда не равно
0.)
3. Если не равно нулю, выполнить ... и т. д.
Вообще-то это 1, 2, 3 надо изложить яснее.
А если вы пишете
if (a==7), то это значит:
1. Проверить,
a равно
7?2. Если равно, то выполнить ... и т. д.»
Можно ещё в сносочке указать, в чём профит такого изврата:
if ( errorlevel=test_function() ) { /* ... */ } — греет
душу своей краткостью. И вот, кстати только это, да ещё
while ( *dest++ = *src++ ) ; и
addr=&var; для начала
нужно из Си.
Да, а в цитате: это никакая не
функция присваивания, и вовсе
не
указатель она возвращает. И не на объект.
И вот что по урокам: пока не видел ни одного материала по Плюсам,
который был бы
именно про Плюсы.
В лучшем случае начинается всё как лирический рассказ про то, что
круг — это геометрическая фигура, и квадрат тоже, и про то, что они
могут быть разного цвета
А то и вообще про каких-то друзей
с членами
Казалось бы, приведите простой пример — работу с комплексными
числами с помощью тех же арифметических операций, что и для
действительных.
Это ж круто: пишем
c=a*b, а вычисляется
re(c)=re(a)*re(b)-im(a)*im(b); im(c)=re(a)*im(b)+re(b)*im(a);
И да, должен с прискорбием заметить, что мы изучаем здесь
программирование
вообще как таковое, численные методы,
различный софт, да что угодно, но никак не
C++!