Издание: Лаптев В. В. 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