Издание: Лаптев В. В. C++. Объектно-ориентированное программирование: Учебное пособие. — СПб.: Питер, 2008. — 464 с.
Предупреждение. Я также, как и уважаемый автор книги, мог ошибиться.
| Стр. | Вместо | Должно быть |
|---|---|---|
| 37 | последняя строка снизу: TMotey u = 200.00; | TMoney u = 200.00; |
| 50 | Конструктор инициализации:... TMoney(const long double &r=0.0) | TMoney(const long double &r) |
| 83 | строка 11 сверху: TMonet t = 2, s = 0; | TMoney t = 2, s = 0; |
| 88 | строка 17 снизу: как методы класса | методами класса |
| 92 | строка 10 снизу: Конструктор без аргументов Array()... | Конструктор без аргументов Arrays() |
| 112 | последняя строка снизу: Complex a = Complex::Polar(1.0, PI/2.0); | Complex a = Complex::Polar(1.0, pi/2.0); |
| 118 | строка 9 сверху: ...статически переменные | статические переменные |
| 128 | Листинг 5.2 {продолжение): Медоды-операции | Методы-операции |
138* |
строка 4 сверху: ...трех операций умножения | трех операций сложения |
| 138 | листинг 5.15 ...data[i] = rhs;* | data[i] += rhs; |
| 138 | листинг 5.15 ...data[i] = rhs.data[i];* | data[i] += rhs.data[i]; |
| 138 | после листинга 5.15: При умножении массивов | При сложении массивов |
| 162 | Листинг 6.5. В push_back() и pop_back() необходимо внести count++ и count-- соответственно в блок else, иначе будет добавлен/отнят лишний элемент. |
|
| 217 | строка 11 сверху: Base::Print(); | Point2D::Print(); |
| 217 | строка 14 сверху: Poinr3D T; | Point3D T; |
| 217 | строка 16 сверху: T.Base::Print(); | T.Point2D::Print(); |
| 224 | строка 1 сверху: при закрытом наследовании все элементы класса-наследника становятся приватными и недоступными клиенту. | при закрытом наследовании все элементы базового класса становятся приватными в классе наследнике и недоступными клиенту. |
| 225 | строка 2 сверху: в производном класса | в производном классе |
| 239 | строка 10 снизу: enum notr | enum note |
| 256 | Неоднозначность: Пусть, например, в показанном примере (см. листинг 10.1)... Тогда при трансляции возникает конфликт имен в функции print() класса D — компилятор не знает, какое из полей используется. Функция D.print() в листинге 10.1 не задана. Её код аналогичен одноимённым функциям базовых классов. | |
| 259 | листинг 10.4, class Left: virtual void Ptint() | virtual void Print() |
| 260 | листинг 10.5. Необходимо определить конструкторы класса Lock. | |
| 279 | листинг 11.1**: void pop() |
T pop() |
| 279 | листинг 11.1, в pop() необходимо добавить return top; | |
| 291 | листинг 11.5: *template |
template |
| 302 | листинг 11.14. Код скомпилировался gcc только после замены следующего объявления дружественной функции-шаблона: |
|
friend std::ostream& operator<< <>(std::ostream &os, const TClass<T> &t); |
`template |
|
| friend std::ostream& operator<<(std::ostream &os, const TClass &t);` | ||
| 374 | строка 3 снизу:... |
|
| 395 | строка 1 сверху:... «имя_файла» | "имя_файла" |
| 416 | листинг 14.15: В цикле while пропущена строка Summa += tmp.Price*tmp.HowMany; |
* Здесь всё равно, какую операцию описывать — сложения или умножения, но нужно было остановиться на чём-то одном.
** При совпадении имён поля count и метода count() gcc указывает на конфликт имён. Заменил имя поля на counter.
Комментарии
comments powered by Disqus