Errata
A number of people have provided valuable feedback by identifying mistakes and suggesting corrections. I am very grateful to these individuals for their important contribution. The errata items are in page order with Chapter headings for reference. The intention is to make corrections immediately to the web version of the material and, in a later edition, to the printed version.
Readers may submit additional contributions by email to kafura@cs.vt.edu.
Chapter 1 (pages 1-40)
Chapter 2 (pages 41-80)
Chapter 3 (pages 81- 132)
Chapter 4 (pages 133-204)
Chapter 5 (pages 205-256)
Chapter 6 (pages 257-322)
Chapter 7 (pages 323-352)
Chapter 8 (pages 353-374)
Chapter 9 (pages 375-432)
- pg 57. line 6 from bottom: "overload" -> "overloads"
- pg 60. line 4 from bottom: "200"-->150
- pg 61. line 18 from bottom: "give" -> "gives"
- pg 61. line 5 from bottom: "illustrate" -> "illustrates"
- pg 62. line 3 from botton: "Is is" --> "Is it"
- pg 64. 4th non-blank line from botton: "Hello" -> "Hello " (add two blanks at end of word)
- pg 69. remove the Exercises icon near middle of page
- pg 71. line 9 from bottom: "know until" ->> "known until"
- pg 73. the two for loops are incorrect. they should read: for (int i=0; i<5; i++)
- pg 73. Capitalize the "R" in "resize" in "windowList[i].resize(0.9);" --> "windowList[i].Resize(0.9);"
- pg 74. last line: insert "the" between "of" and "function"
- pg 75. para after code - need font change for object names
- pg 76. 4th line in section 2.9: "object" -> "objects"
- pg 76. add at end of code segment: "delete default; // destruct default Frame" and in last line on page change "three Frame objects" to "four Frame objects"
- pg 81. line 11 from bottom: insert "it" between "that" and "is"
- pg 83. line 14: "Oftentimes" -> "Often"
- pg 83. line 24: "objects" -> "object"
- pg 85. line 6 after Code Sample 3-3: Frame(Shape s) --> Frame(char* name, Shape s)
- pg 100. code section: query3 = new Query("C++"); should be query4 ...
- pg 100. code section: "File bookList.." should be "File booklist ..." (lower case L)
- pg 103. line 3 from bottom: "methods" -> "method"
- pg 104. code section: drawingWindow = new Frame"Drawing",...); should be Frame("Drawing...
- pg 105. Code Sample 3-12: void DisplayIn (Frame& ... should be (Frame& whichframe);
- pg 108. Code Sample 3-13: void OnStart method should not
have a semi-colon after the closing brace.- pg 114. Code Sample 3-17: window.Clear() should have a semi-colon after it
- pg 114. Code Sample 3-17: the semi-colon at the closing brace of void OnStart() should be removed.
- pg 114. Code Sample 3-17: in onTimerEvent, "if onoff)..." should read "if (onoff) ..."
- pg 115. Code Sample 3-19: window.Clear() should have a semi-colon after it
- pg 115. Code Sample 3-19: the semi-colon at the closing brace of void OnStart() should be removed.
- pg 117. line 8 after Code Sample 3-20: TextBox --> Message
- pg 117. 2nd line of code: "TextBox countDisplay..." --> "Message countDisplay..."
- pg 118. Code Sample 3-21: void ConnectTo(Counter & count); should be (Counter& count);
- pg 119. in code example: second.ConnectTo(display); should be seconds.ConnectTo(display);
- pg 125. In Code Sample 3-27: text = copystring(buttonLabel); should be text = tbox.GetText();
- pg 126. In Code Sample 3-28: delete the line "void ConnectTo(Counter& count);
- pg 126. 3rd line of code after Code Samle 3-29: insert "the" between "of" and "simple"
- pg 127. Exercise #2 (Button Timer):. Modify beginning of sentance to read as follows: "Using the Clock, Counter, Message, Button, Frame, and other classes..."
- pg 130. In code example toward botton of page: change "Shape currentShape = window.WhatShape();" to read "Shape currentShape = largeSquare;" and change "Location currentLocation = window.WhereAt();" to read "Location currentLocation = nearTop;"
- pg 133: line 6: change "is it" to "it is"
- pg 134: line 3 from bottom: change "composition" to "association"
- pg 136. simplicity bullet, line1/2: insert "of" between "assembly" and "encapsulated"
- pg 136. simplicity bullet, line 5: "Image" -> "Imagine"
- pg 136. simplicity bullet, line 6: "composition" --> "association"
- pg 138. line 2 in second bullet under "specialization" heading: change "of the of the" to "of the"
- pg 142. line 3 in "ArgumentList:" header: "not" --> "no"
- pg 142. line 2 from bottom: "by a value" --> "to a value"
- pg 144. last line: "needed" -> "need"
- pg 147. line 1: "on" -> "one"
- pg 162. first line in Section 4.6: add "the" before "StopWatch"
- pg 164. line 2 from bottom: "illustrate" -> "illustrates"
- pg 168. in Code Sample 4-17 in line after comment "// subobject constructor list": "counter(0)," --> "clockCounter(0),"
- pg 169. line 4: "know" --> "known"
- pg 169. line 11: delete "that" between "errors" and "are"
- pg 169. line 18: "know" --> "known"
- pg 178. Code Sample 4-23, implementations of setX/setY: assign newx/newy vice newX/newY
- pg 179. line 1: insert "with" between "conjunction" and "parameters"
- pg 180. Code Sample 4-24: the 1st occurrence of "const" in isSameAs() declaration should be in bold font
- pg 182. Code Sample 4-25: the 2nd "const" in isInList() should be in bold font, and ", const int length" should be added after "const list" (all uses of "const" should be in boldface)
- pg 182. Code Sample 4-25, line 9/10from bottom: a boldface "const" should be added in front of "int length"
- pg 183. code section: the else clause ending parenthesis should be a brace
- pg 190. 2nd bullet: insert a space between "pointer:" and "a"
- pg 201. line 7 in second full paragraph: add sentance "The RectangleFactory class is shown in Code Segment 4-37."
- pg 209. line 12 from bottom: "case ++" -> "case C++"
- pg 213. Search Paths line 8: "they include" -> "the include"
- pg 216. line 2 in Easier testing/debugging bullet: change "bugs" to "new bugs" and delete the word "that"
- pg 229. In section headed"Rebuilding the System": after the first sentance add the sentance "These commands are shownin Table 5-6."
- pg 230. 2nd paragraph: "Two other commands" --> "Two other commands, summarized in Table 5-7,"
- pg 258. last sentence of section 6.1: change "programming" to "programmer"
- pg 260. immediately beneath Code Sample 6-2: items "ShowIn:", "Reset:", and "Value:" should be indented under the label "Code:" as are the two items under the preceeding label "Data:"
- pg 262. line 14: "New()" -> "Next()"
- pg 263. Figure 6-2: "Textbox" -> "textBox"
- pg 266. Figure 6-4: "Textbox" -> "textBox"
- pg 271. line 1: remove "data" between "the" and "private"
- pg 271. line 9: "looses" --> "loses"
- pg 273. line 7 in Code Sample 6-6: change "int init, int b = 10" to "int b, int init = 10"
- pg 280. Exercise 4, line2: "expect" -> "except"
- pg 284. line 8: insert "to" between "object" and "the"
- pg 287. line 1: "method" -> "methods"
- pg 288. Code Sample 6-13: "Quadrelateral" -> "Quadrilateral"
- pg 288. Code Sample 6-13: delete the line "void SetShape (Shape shape);"
- pg 288. line 7: "one if which" -> "one of which"
- pg 289. at end of second paragraph add the sentance: The Quadrilateral class and the revised class hierarchy is shown in Code Sample 6/13."
- pg 290. line 11: "an" --> "any"
- pg 290. line 9 from bottom: "case." -> "cast."
- pg 292. middle code section: (DisplayableNumber&) Number; should be number;
- pg 292. line 13 from bottom: "(Number)" -> "(number)"
- pg 292. bottom code section: (DisplayableNumber) count2 should be (DisplayableNumber&) count2;
- pg 294. last line: change "cycler" to "octal"
- pg 295. first line: change "octal" to "length"
- pg 296. 4th line from bottom: change "method" to "methods"
- pg 302. Code Sample 6-19: void Connectto(Displayable... should be ConnectTo(...
- pg 303. first line: change "oneMinute60..." to "oneMinute(60..."
- pgs 315/316. Code Samples 6-24 and 6-25 should be swapped so that they appear on the same pages as they are referenced
- pg 317. Code Sample 6-26: void Connectto(Displayable... should be ConnectTo(...
- pg 320. Code Sample 6-29: same as Code Sample 6-26
- pg 322 is a blank unnembered page.
- pg 333. line2: insert "with" between "template" and different"
- pg 346. Code Sample 7-17: SequencedInerface *sequenced; should be SequencedInterface *sequenced;
- pg 373. line 6: either insert "the" between "on" and "value", or "value" -> "values"
- pg 374 is missing in my copy
- pg 376. sentence which begins on line 8 from bottom: "It is not uncommon..." This sentence is incorrect grammatically. Possibly the section "...yields as it is develops..." is supposed to be "...yields as it is developed..."
- pg 376. The last paragraph should read: "The heuristic rules and guidelines are used together in an interative manner. It is not uncommon that a rule can suggest the beginning of a good class design-the rule triggers some idea in the mind of the designer. The initial idea usually lacks the detail of a complete class design, but the details emerge with additional design work. The qualittive measures can be..."
- pg 378. 7th line from bottom: "programming" --> "program"
- pg 379. line 15 from bottom: "object" -> "objects"
- pg 380. first line after "Communicator: bullet paragraph: inser "agents" between" "four" and "are"
- pg 380. line 15 from bottom: "dislayers," -> "displayers,"
- pg 382. line 12: "is which" -> "in which"
- pg 382. line 12 from bottom: "it" -> "its"
- pg 386: line 2: change two words "of ten" to single word "often"
- pg 386. 1st bullet should be "Source or sink:"
- pg 389. Table 9-5: under reactors - "system events" should be "internal events" - "user events" should be "interface events" under containment - "collaboration" should be "collaborators" under collection - "interations" should be "interators" under data - "sources/sink" should be "sources/sinks"
- pg 389. Table 9-6: under implementation - "their" should be "there"
- pg 393. line 9: "contain" -> "contains"
- pg 395. Exercises: questions 1, 3, and 5 are the same. 3 should probably be structural perspective, and 5 should probably be information perspective.
- pg 396. Table 9-7, line 5: "systems" -> "system"
- pg 396. Table 9-7, line 4 from bottom: change "a" to "an"
- pg 401. line 15: "class" -> "classes"
- pg 401. line 4 from bottom: replace "FuelGauge" with "Speed"
- pg 401. next to last line: "in" --> "is"
- pg 402. Second Iteration paragraph: replace all occurences of "Speed" with "FuelGauge"
- pg 405. Exercise 5: "number 5" -> "number 4"
- pg 413. Table 9-9, line 10: remove "itself" pg 414. line 2 from bottom: "my" -> "by"
- pg 416. Exercise 3: insert "that" between "data" and "should"
- pg 418. line 3: "relationship" -> "relationships" pg 419. line 5: "Shape" -> "Shapes"
- pg 420. Figure 9-18: the line from PenPalette to Pen should be dotted vice solid
- pg 420. line 11: "form" -> "from"
- pg 422. Figure 9-20: same as Figure 9-18
- pg 430. line 4 from bottom: insert "any" between "because" and "attempt"
- pg 431. line 4 from bottom: remove "t" from between "problems" and "specific"
Andy Carroll
Byung Choi
Lindsey Dawson
George B. Durham (erols.com)
Ahsan Habib
Kyehung Kang
Julia Novak
Jonathan Seeman
Jun Wang
| ©1998 Prentice-Hall, Inc. A Simon & Schuster Company Upper Saddle River, New Jersey 07458 |