The errata list is a list of errors and their corrections that were found after the product was released. If the error was corrected in a later version or reprint the date of the correction will be displayed in the column titled "Date Corrected".
The following errata were submitted by our customers and approved as valid errors by the author or editor.
| Version |
Location |
Description |
Submitted By |
Date Submitted |
Date Corrected |
| Printed |
Page not part_number
. |
|
Anonymous |
|
Jun 01, 2001 |
| Printed |
Page 40
under "Revision history": changed "PVCS" to "PCVS" |
|
Anonymous |
|
Jan 01, 1998 |
| Printed |
Page 43
paragraph 1 under "Indentation and Code Format," line 3 |
changed "Example 3-5" to "Example 3-1"
|
Anonymous |
|
Jul 01, 1998 |
| Printed |
Page 58
In Example 4.3. float1/float1.c |
main()
{
...
floating = (1 / 2) + (1 / 2); //assign floating 0.0
...
return(0);
}
The floating assignment now reads 1.0
|
Anonymous |
|
Sep 01, 1999 |
| Printed |
Page 58
Example 4-3 |
floating = (1/2) + (1/2) assign floating 1.0 now reads floating = (1/2) +
(1/2) assign floating 0.0.
|
Anonymous |
|
Jun 01, 2001 |
| Printed |
Page 59
Table 4-3, last line |
The x is missing.
NN
should be:
xNN
Note from the Author or Editor: Reader is correct.
|
Anonymous |
|
|
| Printed |
Page 70
4th para: put "'/0'" in constant-width font |
|
Anonymous |
|
Jan 01, 1998 |
| Printed |
Page 75
code block in "NOTE": |
const int first_part = 3;
const int second_part = 7;
should be:
const int FIRST_PART = 3;
const int SECOND_PART = 7;
|
Anonymous |
|
|
| Printed |
Page 78
Question 5-3 |
The example code fails to include #include <iostream.h>--If source is copied
directly from book, program will not compile.
|
Anonymous |
|
|
| Printed |
Page 78
first paragraph |
10010100 base 2 now reads 1001 0100 (not 1000 0100), which is 94 base 16 (not
84).
|
Anonymous |
|
Jun 01, 2001 |
| Printed |
Page 89
|
The sentence before the last sentence now reads:
... by putting current_number into old_number and
putting next_number into current_number.
|
Anonymous |
|
Jun 01, 2001 |
| Printed |
Page 90
two lines above the "typedef" heading: |
|
Anonymous |
|
Jan 01, 2000 |
| Printed |
Page 102
Example 7-1. |
Example 7-1. calc/calc.cc
should be:
Example 7-1. calc1/calc.cc
Note from the Author or Editor: Reader is correct.
|
Anonymous |
|
|
| Printed |
Page 102
example 7-1: made the line |
cin >> oper_char >> value;
into:
cin >> oper_char;
cin >> value;
|
Anonymous |
|
Jan 01, 1998 |
| Printed |
Page 103
changed "operator" to "oper_char" three times in code and once |
|
Anonymous |
|
Jan 01, 1998 |
| Printed |
Page 105
1st paragraph |
make determines what compilation commands are needed
and execute them.
should be:
make determines what compilation commands are needed
and executes them.
Note from the Author or Editor: execute them -> executes them.
|
Anonymous |
|
|
| Printed |
Page 106
last code block, line 2: made the line |
cin >> value >> operator;
into:
cin >> value;
cin >> oper_char;
and changed "operator" to "oper_char" in the third line from the end
of that code example
|
Anonymous |
|
Jan 01, 1998 |
| Printed |
Page 106
In the example at the bottom, the undefined variable operator was |
replaced with oper_char (three times).
|
Anonymous |
|
Jun 01, 2001 |
| Printed |
Page 107
In the description of the result the debug output |
## after cin +
## after if +
is missing after the line:
Enter operator amd number: + 123
|
Anonymous |
|
|
| Printed |
Page 107
changed the line |
cin >> oper_char >> value;
to:
cin >> oper_char;
<in between them goes the "if" line)
cin >> value;
|
Anonymous |
|
Jan 01, 1998 |
| Printed |
Page 107
Example 7-2 |
The filename now reads calc3.cc (not calc3.c).
|
Anonymous |
|
Jun 01, 2001 |
| Printed |
Page 111
Example 7-3 |
The alignment on the right side of the example has been fixed.
|
Anonymous |
|
Jun 01, 2001 |
| Printed |
Page 120
Begining of Example 8-4 |
In Example 8-4.seven/seven.cc. the first line "include <iostream.h>" is missing the
"#" in front of include.It should be "#include <iostream.h>. Program will not compile
if "#" is left out.
Note from the Author or Editor: include -> #include
|
Anonymous |
|
|
| Printed |
Page 128
Figure 9.1 |
The last brace in the highlighted block faces the wrong way.
Note from the Author or Editor: Page 130, Figure 9-2, last shaded { should be }.
|
Anonymous |
|
|
| Printed |
Page 128
In Answer 8-1 the variable |
centigrade
now reads:
celsius (x2)
according to the Example 8-3 on page 119.
|
Anonymous |
|
Jun 01, 2001 |
| Printed |
Page 130
Figure 9-2 (above the line '++count;') |
The second 'Block' is now closed with a "}"
(formerly a "{")
|
Anonymous |
|
Jan 01, 2000 |
| Printed |
Page 134
In the NOTE, changed |
the type defaults to int
to:
many compilers assign a type int by default.
|
Anonymous |
|
Sep 01, 1999 |
| Printed |
Page 137
1st paragraph under "Reference Parameters and Return Values" |
In the first line, "Chapter 4, Basic Declarations and Expressions" now reads
"Chapter 5, Arrays, Qualifiers, and Reading Numbers."
|
Anonymous |
|
Jun 01, 2001 |
| Printed |
Page 138
replaced Example 9-7. value/bic.cc with the following |
const int ARRAY_SIZE = 5 // Size of the array
int item_array[ARRAY_SIZE] = {1, 2, 5000, 3, 4}; // An array
int &biggest(void)
{
int index; // Current index
int biggest; // Index of the biggest element
// Assume the first is the biggest
biggest = 0;
for (index = 1; index < ARRAY_SIZE; ++index) {
if (item_array[biggest] < item_array[index])
biggest = index;
}
return (item_array[biggest]);
}
|
Anonymous |
|
Dec 01, 1998 |
| Printed |
Page 138
The last sentence before example 9-7 no longer has |
|
Anonymous |
|
Jan 01, 2000 |
| Printed |
Page 138
Example 9-7 |
This example now reads:
int &biggest(int array[], int n_elements)
{
int index; // Current index
int biggest; // Index of the biggest element
// Assume the first is the biggest
biggest = 0;
for (index = 1; index < n_elements; ++index) {
if (array[biggest] < array[index])
biggest = index;
}
return (array[biggest]);
}
|
Anonymous |
|
Jun 01, 2001 |
| Printed |
Page 139
In the example with the comment |
// Using a simple reference
the line:
int big_reference = &item_array[2];
should be:
int &big_reference = item_array[2];
Note from the Author or Editor: Reader is correct.
|
Anonymous |
|
|
| Printed |
Page 139
code sample -3, line -1: replaced |
cout << biggest(item_array, 5) << '
':
with
cout << biggest() << '
';
|
Anonymous |
|
Dec 01, 1998 |
| Printed |
Page 139
|
In the first coding example it read:
"cout << "The biggest element is " <<
biggest(item_array, 5) << '
'; "
It now reads:
"cout << "The biggest element is " <<
biggest( ) << '
'; "
|
Anonymous |
|
Sep 01, 1999 |
| Printed |
Page 139
|
The 3rd line in the first block of code now reads:
biggest(item_array, 5) << '
';
|
Anonymous |
|
Jun 01, 2001 |
| Printed |
Page 139
|
The 5th paragraph now reads:
The function biggest returns a reference to item_array[2].
Remember that in the following code, biggest() is
item_array[2]. The following three code sections all
perform equivalent operations. The actual variable,
item_array[2], is used in all three:
The last line of the 3rd code block now reads:
biggest() = 0
Also, the last line of code on the page now reads:
biggest() = 0
|
Anonymous |
|
Jun 01, 2001 |
| Printed |
Page 141
next-to-last code example, line 2: changed "...[][10]" to |
|
Anonymous |
|
Jan 01, 1998 |
| Printed |
Page 141
|
The first sentence of Array Parameters did read:
So for you've dealt only with simple parameters.
now reads:
So far you've dealt only with simple parameters.
|
Anonymous |
|
Jan 01, 2000 |
| Printed |
Page 143
First line on page, the word "list" is now in Normal font |
(formerly constant-width)
|
Anonymous |
|
Jan 01, 2000 |
| Printed |
Page 143
In the first four blocks of code in the section "Default Parameters" |
...(const rectangle &rectangle...
now reads:
...(const int width, const int height...
and:
draw(big_rectangle...
now reads:
draw(3,5...
|
Anonymous |
|
Jun 01, 2001 |
| Printed |
Page 155
Question 10-2, sentence 1: changed "Example 10-2" to |
|
Anonymous |
|
Jul 01, 1998 |
| Printed |
Page 155
Example 10-4, line 5: changed |
#define MAX=10
to
#define MAX 10
|
Anonymous |
|
Jul 01, 1998 |
| Printed |
Page 155
|
In example 10-4, line 5 now reads:
#define MAX = 10
|
Anonymous |
|
Jan 01, 2000 |
| Printed |
Page 155
Example 10-4 |
Line 5 did read
#include MAX = 10
Now it reads
#include MAX =10
|
Anonymous |
|
Jul 01, 2000 |
| Printed |
Page 155
|
Question 10-2 now reads:
1 //Warning, spacing is very important
2
3 #include <iostream.h>
4
5 #define MAX = 10
6
7 int main()
8 {
9 int counter;
10
11 for (counter =MAX, counter > 0;
12 --counter)
13 cout << "Hi there
";
14
15 return (0);
16 }
|
Anonymous |
|
Jun 01, 2001 |
| Printed |
Page 155
|
The text for Question 10-3 now reads:
Example 10-5 computes...
|
Anonymous |
|
Jun 01, 2001 |
| Printed |
Page 156
|
The heading of example 10-6 did read:
Example 10-6. dis/die.cc
now reads:
Example 10-6. die/die.cc
|
Anonymous |
|
Jan 01, 2000 |
| Printed |
Page 157
2nd line on page |
const box pink_box(1.0, 4.5);
now reads:
const box pink_box(1, 4);
|
Anonymous |
|
Jun 01, 2001 |
| Printed |
Page 161
Changed the font style of paragraphs from Question 10-5 to Question 10-6 |
|
Anonymous |
|
Dec 01, 1998 |
| Printed |
Page 164
In Answer 10-4, the line |
void exit();
was removed.
|
Anonymous |
|
Jun 01, 2001 |
| Printed |
Page 165
|
Answer 10-5 now reads:
The problem is that the preprocessor does not understand C++ syntax. The
macro call
SQR(counter+1)
expands to
(counter+1 * counter+1)
The result is not the same as ((counter+1) * (counter+1)).
To avoid this problem, use inline functions instead of parameterized macros.
inline int SQR(int x) { return (x*x);}
If you must use parameterized macros, enclose each use of the parameter in
parnetheses.
#define SQR(x) ((x) * (x))
|
Anonymous |
|
Dec 01, 1998 |
| Printed |
Page 167-168
All of Table 11-1 now appears on page 168 so the two lists of values |
|
Anonymous |
|
Jun 01, 2001 |
| Printed |
Page 169
In the detailed explanation after "This is because:", the value 0x41 has |
been placed under 0x71. It was too far left.
|
Anonymous |
|
Jun 01, 2001 |
| Printed |
Page 170
explanation for & operator |
The "&" has been placed above the line.
|
Anonymous |
|
Jun 01, 2001 |
| Printed |
Page 171
explanation for | operator |
The "|" has been placed above the line.
|
Anonymous |
|
Jun 01, 2001 |
| Printed |
Page 171
explanation for ^ operator |
The"^" has been placed above the line.
|
Anonymous |
|
Jun 01, 2001 |
| Printed |
Page 178
code at bottom |
The line:
graphics[(x)/8][y] |= (0x80 >> ((x)%8))
now reads:
graphics[x/8][y] |= (0x80 >> (x%8));
|
Anonymous |
|
Jun 01, 2001 |
| Printed |
Page 179
Example 11-2 |
The line:
graphics[(x)/8][y] |= (0x80 >> ((x)%8))
now reads:
graphics[x/8][y] |= (0x80 >> (x%8));
|
Anonymous |
|
Jun 01, 2001 |
| Printed |
Page 180-181
The sentence |
Finally, at the heart ...
now follows the table as introduction for the programming code.
|
Anonymous |
|
Jun 01, 2001 |
| Printed |
Page 181
replaced Question 11-2 and example 11-3 - contact me for the new info |
|
Anonymous |
|
Jan 01, 1998 |
| Printed |
Page 186
code at top |
field-type field-name
now reads:
field-type field-name; (x2)
|
Anonymous |
|
Jun 01, 2001 |
| Printed |
Page 189
The first code segment now has a "}" right after the last line |
main()
{
data.f_value ...
data.i_value ...
...
data.f_value ...
i = data.i_value ...
}
|
Anonymous |
|
Jan 01, 2000 |
| Printed |
Page 190
between first and second Table; second Table itself |
Copy/Paste Error
----------------------------------------------------
first Error:
------------
struct foo {
int two_bits:3; ---> should be: int two_bits:2;
};
second Error:
--------------
Bit Pattern | Decimal value
10 | -2
11 | -1
000 | 0 ---> should be: 00 0
001 | 1 ---> should be: 01 1
Note from the Author or Editor: This is the 2nd edition. Reader is correct.
|
Anonymous |
|
|
| Printed |
Page 190
1st line of code under "typedef" |
typedef type-declaration
now reads:
typedef type-declaration;
|
Anonymous |
|
Jun 01, 2001 |
| Printed |
Page 192
First line of the large code segment in the middle of |
the page now reads:
enum day_of_the_week today = TUESDAY;
|
Anonymous |
|
Jan 01, 2000 |
| Printed |
Page 192
2nd block of code |
enum enum-name {tag-1, tag-2, . . .} variable-name
now reads:
enum enum-name {tag-1, tag-2, . . .} variable-name;
|
Anonymous |
|
Jun 01, 2001 |
| Printed |
Page 207
|
The code at the top of this page did read:
stack::~stack(void)
now reads:
inline stack::~stack(void) {
|
Anonymous |
|
Jan 01, 2000 |
| Printed |
Page 209
|
2nd box should read:
a_stack.stack() called
|
Anonymous |
|
|
| Printed |
Page 209
|
The first sentence now reads:
The copy constructor...
instead of:
The copy operator...
|
Anonymous |
|
Jun 01, 2001 |
| Printed |
Page 210
Near the bottom of the page |
call_type first_var
now reads:
class_type first_var
|
Anonymous |
|
Jan 01, 2000 |
| Printed |
Page 215
Exercise 13-4, under Member functions |
int small_set::test(void);
now reads:
int small_set::test(int item);
|
Anonymous |
|
Sep 01, 1999 |
| Printed |
Page 228
para 1, last line: changed "11 chapters" to "14 chapters"; and |
in para 4, line 2, changed "Pennsylvania Ave." to "W. Pennsylvania
Ave."
|
Anonymous |
|
Jan 01, 1998 |
| Printed |
Page 230
Example 15-5 (init-a/init-a.cpp) |
void init_array_1(int data[])
{
int index;
for (...){
....
}
should be
void int_array_1(int data[])
{
int index;
for (...){
....
}
}
|
Anonymous |
|
|
| Printed |
Page 230
the figure on this page is new |
|
Anonymous |
|
Jan 01, 1998 |
| Printed |
Page 232
line -4 |
"If you put the const after the *, we tell C++ that the data is constant."
now reads
"If you put the const after the *, we tell C++ that the pointer is constant."
(changed "data" to "pointer")
|
Anonymous |
|
Dec 01, 1998 |
| Printed |
Page 241
4th line |
command options file1 file1 file3 ...
should be:
command options file1 file2 file3 ...
Note from the Author or Editor: Reader is correct, but page is 242
|
Anonymous |
|
|
| Printed |
Page 261
para. 7 under "The End-of-Line Puzzle," lines 1 and 5 |
changed "<line feed><carriage return>" to
"<carriage return><line feed>"
|
Anonymous |
|
Jul 01, 1998 |
| Printed |
Page 262
In Example 16-3 the parentheses in the line |
(cerr << "Cannot open output file
");
were removed.
|
Anonymous |
|
Jun 01, 2001 |
| Printed |
Page 262
Example 16-3 |
out_file << cur_char;
now reads:
out_file.put(cur_char);
|
Anonymous |
|
Jun 01, 2001 |
| Printed |
Page 267
Example 16-4, line 27: changed |
if (argc != 3) {
to
if (argc != 2) {
|
Anonymous |
|
Jul 01, 1998 |
| Printed |
Page 268
Example 16-4 |
Cast (unsigned int) is not necessary and it is not the recommended C++ style,
so it has been removed.
|
Anonymous |
|
Jun 01, 2001 |
| Printed |
Page 283
Example 17-1, top of page |
The declaration reads:
int lookup(char *);
The author recommends the use of variables in declarations. It now reads:
int lookup(char *name);
|
Anonymous |
|
Jun 01, 2001 |
| Printed |
Page 284
Example 17-2 |
The line:
istream &extended_getline(char *line, int size, ifstream &file)
now reads:
istream &extended_getline(char *line, int size, istream &file)
|
Anonymous |
|
Jun 01, 2001 |
| Printed |
Page 284
Example 17-2 |
At the bottom of the page the line:
istream result; /* Result of gets */
now reads:
istream result; /* Result of getline */
|
Anonymous |
|
Jun 01, 2001 |
| Printed |
Page 285
Example 17-2, top of page |
The line:
return (*result);
should be removed.
|
Anonymous |
|
|
| Printed |
Page 285
Example 17-3 |
The line:
char *extended_getline...
now reads:
void *extended_getline...
|
Anonymous |
|
Jun 01, 2001 |
| Printed |
Page 287
Example 17-4 |
The code should read:
* (normally stdin) *
************************************************
void &extended_getline(char *line, int size, istream &file)
{
if (playback_file_open) {
&playback_file.getline(line, size);
if (file == cin)
// Echo the input to the standard out
// so the user sees it
cout << line << '
';
) else
file.getline(line, size);
//Did someone ask for a save file?
if (save_file_open)
save_file << line << '
';
}
|
Anonymous |
|
|
| Printed |
Page 288
Example 17-5, top of page |
4th line now reads:
ifstream playback_file...
and the 9th line now reads:
void *extended_getline...
|
Anonymous |
|
Jun 01, 2001 |
| Printed |
Page 289
twice in code, made " John is in the list" into " John is not |
in the list"; in the last para., line 2: changed "PVCS" to "PCVS"
|
Anonymous |
|
Jan 01, 1998 |
| Printed |
Page 291
code |
The lines:
main(argc, argv)
int argc;
char *argv[];
should read:
int // ... main(int argc, char *argv[])
|
Anonymous |
|
|
| Printed |
Page 291
added a semicolon at the end of the "debug_ptr..." line |
|
Anonymous |
|
Jan 01, 1998 |
| Printed |
Page 292
para. 2 under "Going Through the Output": changed |
"C++ allows you to" to "The shell or command-line interpreter
allows you to"
|
Anonymous |
|
Jul 01, 1998 |
| Printed |
Page 299
1st paragraph |
In the first sentence the name of the function is missing It should read:
...generated from the procedure number.
|
Anonymous |
|
|
| Printed |
Page 307
|
The last sentence before "Runtime Errors" now reads:
...break 49 if point_number == 735...
|
Anonymous |
|
Jun 01, 2001 |
| Printed |
Page 323
|
2nd line of code at top of page now reads:
complex operator +(real v1, real v2); // Illegal
|
Anonymous |
|
Jun 01, 2001 |
| Printed |
Page 327
In the middle of the page the function number.set() is used, but it has |
not been defined yet.
number.set(real, imaginary);
now reads:
number.set_real(real);
number.set_imaginary(imaginary);
|
Anonymous |
|
Jun 01, 2001 |
| Printed |
Page 342
Answers to Chapter Questions |
The following was added to the end of the section:
Unfortunately, this only solves part of the problem. Now
we don't call the copy constructor going into the operator
= function. But when we return (*this), the return value
has to be copied, so we still call the copy constructor.
The solution is to return a reference to the class instead
of a copy of the class. Thus our declaration of the operator
= function should be:
trouble &trouble::operator = (const trouble &old_trouble) {
|
Anonymous |
|
Jun 01, 2001 |
| Printed |
Page 344
In Table 19-1 |
33000.0
now reads:
330000.0
|
Anonymous |
|
Jun 01, 2001 |
| Printed |
Page 345
In "Multiplication" under item 3, the normalized result |
+1.3200E+0
now reads:
+1.320E+0
|
Anonymous |
|
Jun 01, 2001 |
| Printed |
Page 347
At the top of the page the line |
1/3 as floating point is 3.333-1
now reads:
1/3 as floating point is 3.333E-1
|
Anonymous |
|
Jun 01, 2001 |
| Printed |
Page 357
3rd block of code |
Mine reads:
struct person *new_ptr;
Should read:
class person *new_ptr;
since it was declared as a class in the 2nd block of code.
Note from the Author or Editor: Code should be
person* new_ptr;
|
Anonymous |
|
|
| Printed |
Page 358
2nd block of code under :delete Operator" |
delete []pointer;
should be:
delete[] pointer;
It is better to use only one form.
|
Anonymous |
|
|
| Printed |
Page 360
|
5th line of code now reads:
int data; //Data in this element
|
Anonymous |
|
Jun 01, 2001 |
| Printed |
Page 361
|
1st line of code now reads:
(*new_ptr).data = item
|
Anonymous |
|
Jun 01, 2001 |
| Printed |
Page 362
Example 20-2 |
name -- name to look for in the list
now reads:
value -- value to look for in the list
and:
int linked_list::find(char *name)
now reads:
int linked_list::find(int value)
and:
while ((strcmp(current_ptr->data, name != 0) &&
now reads:
while (current_ptr->data == value) &&
|
Anonymous |
|
Jun 01, 2001 |
| Printed |
Page 363
code sample, lines 12, 13, 15, 18: changed all occurances |
of "insert_ptr" to "after_ptr"
|
Anonymous |
|
Jul 01, 1998 |
| Printed |
Page 363
2nd paragraph |
The sentence:
The variable after_ptr is set to point to the previous value.
now reads:
The variable after_ptr is set to point to the next value.
|
Anonymous |
|
Jun 01, 2001 |
| Printed |
Page 363
code |
The lines:
linked_list_item *before_ptr; // Insert before this element
linked_list_item *after_ptr; // Insert after this element
now reads:
linked_list_item *before_ptr; // Insert after this element
linked_list_item *after_ptr; // Insert before this element
|
Anonymous |
|
Jun 01, 2001 |
| Printed |
Page 366
In the middle of the page, the sentence |
Notice that we do not have to keep track of the variable after_ptr.
now reads:
Notice that we do not have to keep track of the variable before_ptr.
|
Anonymous |
|
Jun 01, 2001 |
| Printed |
Page 367
The 6th paragraph now refers to Figure 20-10, not 20-11. |
|
Anonymous |
|
Jun 01, 2001 |
| Printed |
Page 368
The order of the steps does not fit to the order of the steps described |
in the text (confusing). The indents before step 3 and 4 have been removed.
|
Anonymous |
|
Jun 01, 2001 |
| Printed |
Page 368-369
Figures 20-9 and 20-10 were switched. |
|
Anonymous |
|
Jun 01, 2001 |
| Printed |
Page 369
"private:" was added to the top of class tree. |
|
Anonymous |
|
Jun 01, 2001 |
| Printed |
Page 370-371
Figures 20-12 and 20-13 were switched. |
|
Anonymous |
|
Jun 01, 2001 |
| Printed |
Page 372
changed first code sample |
void tree::enter_one(node *&tree_node, char *word)
{
int result; // Result of strcmp
// See if we have reached the end
if (tree_node == NULL) {
tree_node = new node;
tree_node->left = NULL;
tree_node->right = NULL;
tree_node->word = strdup(word);
}
result = strcmp(node->word, word);
if (result == 0)
return;
if (result < 0)
enter_one(tree_node->right, word);
else
enter_one(tree_node->left, word);
}
(changed "*&node" to "*&tree_node" in line 1, changed
"node" to "tree_node" in subsequent lines.)
|
Anonymous |
|
Jul 01, 1998 |
| Printed |
Page 372
code |
result = strcmp(node->word, word);
now reads:
result = strcmp(node->data, word);
|
Anonymous |
|
Jun 01, 2001 |
| Printed |
Page 373
first code sample, lines 5 and 7: changed |
"print_tree" to "print_one"
|
Anonymous |
|
Jul 01, 1998 |
| Printed |
Page 373
para. 1 under "The Rest of the Program", last |
sentence: changed "print_tree" to "print_one"
(still in constant-width font.)
|
Anonymous |
|
Jul 01, 1998 |
| Printed |
Page 375
Example 20-3, middle of page |
for (index = 1; index < sizeof(word); ++index) {
now reads:
for (index = 1; index < sizeof(word) -1; ++index) {
|
Anonymous |
|
Jun 01, 2001 |
| Printed |
Page 387
1st para |
There appears to be a missing code example after the first paragraph. It ends in a
colon, indicating something should follow, but nothing does.
Note from the Author or Editor: Change : to .
|
Anonymous |
|
|
| Printed |
Page 387
In the middle of the page, the line |
b_stack::b_stack(cont unsigned ...
now reads:
b_stack::b_stack(const unsigned ...
|
Anonymous |
|
Jun 01, 2001 |
| Printed |
Page 389
2nd block of code |
The line:
letter.send();
now reads:
letter.send_it();
(Compare class mail definition on page 388).
|
Anonymous |
|
Jun 01, 2001 |
| Printed |
Page 389
2nd paragraph |
The sentence:
The trouble is that letter is a mail class, so when
we call letter.send() we call the send of the base
class mail.
now reads:
The trouble is that letter is a mail class, so when
we call letter.send_it() we call the send_it of the
base class mail.
|
Anonymous |
|
Jun 01, 2001 |
| Printed |
Page 408
Example 22-1 |
In the second comment block, the Parameters explanation is senseless because
there is no parameter in the function.
Parameters
the stack -- stack to initialize
should be removed.
|
Anonymous |
|
|
| Printed |
Page 417
Example 23-2 |
In the comment block, the function declaration:
int &operator [](int index)
should read:
int &operator [](const unsigned int index)
|
Anonymous |
|
|
| Printed |
Page 417
Example 23-2, middle of page |
BLOCK_SIZE = 100
should be:
BLOCK_SIZE = 10
|
Anonymous |
|
|
| Printed |
Page 418
last para.: changed "100" to "10" and "308" to "38" |
|
Anonymous |
|
Jan 01, 1998 |
| Printed |
Page 419
Example 23-3 |
The right side of the first comment box should be realigned.
|
Anonymous |
|
|
| Printed |
Page 426
In the line |
((HIGH_BOUND - LOW_BOUND) / (float) (NUMBER_OF_LINES);
a parenthesis is missing before ;.
|
Anonymous |
|
|
| Printed |
Page 437
Figure 24-1: Corrected two errors |
- the #define make_max(type) line (first line) now reads:
#define define_max(type)
- the statement "return (d1)" now appears on the blank line in the
middle of each function in the "generated code" column.
|
Anonymous |
|
May 01, 1999 |
| Printed |
Page 439
In the middle of the page, the line |
if (strcmp(d1, d2) < 0
should read:
if (strcmp(d1, d2) > 0
(Compare same function on page 440).
|
Anonymous |
|
|
| Printed |
Page 452
1st block of code |
The 3rd line should read:
#else /* __MSDOS__ */
and the 5th line should read:
#endif /* __MSDOS__ */
|
Anonymous |
|
|
| Printed |
Page 452
In the first para. of the box "Porting four-letter words," letter is |
|
Anonymous |
|
|
| Printed |
Page 457
Example 26-1 |
The number of comment only lines should be 3 instead of 4.
|
Anonymous |
|
|
| Printed |
Page 464
Example 26-2 |
A semicolon is missing at the end of line:
char *name = "Test"
|
Anonymous |
|
|
| Printed |
Page 464
"Revisions", first paragraph |
The "need for expendability" should be "need for expandability".
|
Anonymous |
|
|
| Printed |
Page 480
Example 26-8 |
$(CCFLAGS)=-g
should read:
$(CCFLAGS) = -g
|
Anonymous |
|
|
| Printed |
Page 496
4th code block |
A semicolon is missing at the end of line:
cout << b_sample.*data_ptr << '
'
INDEX:
|
Anonymous |
|
|
| Printed |
Page 555
removed the first entry for "standard libraries" |
|
Anonymous |
|
Jan 01, 1998 |
| Printed |
Page 556
|
(556) The try keyword is explained on page 403 and not on page 405.
|
Anonymous |
|
|