Programming with Objects


A Comparative Presentation of Object-Oriented Programming with C++ and Java


(A new book authored by Avi Kak and published by John-Wiley)

(The book was released by the publisher on March 21, 2003.)
The second printing came out in mid 2005. The second printing incorporates a large number of corrections.



ERRATA    ERRATA    ERRATA
errata updated March 18, 2013



NOTE   FOR   INSTRUCTORS



A solution manual for the homework problems is available free of charge.
If you'd like a copy, 
please send your request to * kak@purdue.edu with the following string in the subject line: "Requesting solution manual for PWO" to get past my spam filter.

VERY IMPORTANT: Your email request for this material must
establish two things: that you are an instructor and that
you are using the PWO book as a text for your class.  An
anonymous email request (using, say, a gmail or a yahoomail
address) that does not indicate your institutional
affiliation will be ignored.






CODE EXAMPLES NOW AVAILABLE FOR DOWNLOAD




Based on highly successful and popular courses at Purdue University, Programming with Objects: A Comparative Presentation of Object-Oriented Programming with C++ and Java uses a novel approach for the teaching and learning of object-oriented programming in the two most important languages of the day. The approach is novel in the sense that it is comparative all the way from basic language constructs to the program constructs needed for designing graphical user interfaces, for network programming, and for database programming.

Roughly the first half of the book is devoted to basic language issues and issues that are fundamental to object-oriented programming in general. The second half of the book is devoted to the programming of graphical user interfaces, multithreading, network programming, and database programming. Whenever possible, the same or very nearly the same problem is solved with C++ and Java to illustrate the similarities and the differences between the two. For the case of graphical user interfaces, the comparative treatment also includes simulated object-oriented programming directly in C.

Many of the explanations in the book have evolved over a number of years as the author experimented with them in class. The explanations and the examples are designed to convey the ideas quickly and efficiently.

Since C++ and Java were both born from the same language, C, learning them together has several distinct advantages:






Contents in Brief

(Chapter headings only)

1 Why OO Programming -- Some Parallels with Things at Large 4 pages
2 Baby Steps 24 pages
3 The Notion of a Class and Some Other Key Ideas 78 pages
4 Strings 40 pages
5 Using the Container Classes 64 pages
6 The Primitive Types and Their Input/Output 72 pages
7 Declarations, Definitions, and Initializations 46 pages
8 Object Reference and Memory Allocation 16 pages
9 Functions and Methods 40 pages
10 Handling Exceptions 30 pages
11 Classes, The Rest of the Story 82 pages
12 Overloading Operators in C++ 50 pages
13 Generics and Templates 40 pages
14 Modeling Diagrams for OO Programs 30 pages
15 Extending Classes 104 pages
16 Multiple Inheritance in C++ 68 pages
17 OO for Graphical User Interfaces, A Tour of Three Toolkits 174 pages
18 Multithreaded Object-Oriented Programming 64 pages
19 Network Programming 28 pages
20 Database Programming 31 pages
Index 28 pages



A DETAILED TABLE OF CONTENTS


1 Why OO Programming -- Some Parallels with Things at Large 1
2 Baby Steps 5
2.1 Simple Programs: Summing an Array of Integers 6
2.2 Simple Programs: Terminal I/O 14
2.3 Simple Programs: File I/O 19
2.4 Suggestions for Further Reading 25
2.5 Homework 25
3 The Notion of a Class and Some Other Key Ideas 29
3.1 Defining a Class in C++ 32
3.2 Defining a Class in Java 37
3.3 Constructing Objects: Differences and Similarities between C++ and Java 40
3.4 Defining a subclass in C++ 42
3.4.1 A Small Demonstration of Polymorphism in C++ 44
3.5 Defining a Subclass in Java 46
3.5.1 A Small Demonstration of Polymorphism in Java 48
3.6 Blocking Inheritance 49
3.7 Creating Print Representations for Objects 52
3.8 Object Destruction 54
3.9 Packages in Java 55
3.10 Namespaces in C++ 61
3.10.1 Using Declaration Versus Using Directive 64
3.10.2 Which Namespace Owns Names Imported from Another Namespace 65
3.10.3 Using Declarations and Directives Have Scope 66
3.10.4 Nesting Namespaces and Namespace Aliases 67
3.10.5 Unnamed Namespaces 69
3.10.6 Koenig Lookup for Unqualified Function Names 70
3.11 Access Control for Class Members 71
3.12 Abstract Classes and Interfaces 73
3.13 Comparing Objects 77
3.14 Static Members of a Class 81
3.15 Template Classes 83
3.16 Nested Types 84
3.16.1 Nested Classes in C++ 84
3.16.2 Nested Classes in Java 89
3.17 Implementing OO Behavior in C Programs 94
3.18 Suggestions for Further Reading 102
3.19 Homework 102
4 Strings 107
4.1 Strings in C, A Brief Review 108
4.2 Some Common Shortcomings of C-Style Strings 111
4.3 C++ Strings 113
4.3.1 Constructing a C++ String Object 113
4.3.2 Accessing Individual Characters 114
4.3.3 String Comparison 115
4.3.4 Joining Strings Together 118
4.3.5 Searching for Substrings and Characters 120
4.3.6 Extracting Substrings 122
4.3.7 Erasing and Inserting Substrings 123
4.3.8 Size and Capacity 124
4.3.9 Some Other String Functions 129
4.4 Strings in Java 129
4.4.1 Constructing String and StringBuffer Objects 131
4.4.2 Accessing Individual Characters 134
4.4.3 String Comparison 135
4.4.4 Joining Strings Together 138
4.4.5 Searching and Replacing 139
4.4.6 Erasing and Inserting Substrings 141
4.4.7 Extracting Substrings 141
4.5 Suggestions for Further Reading 142
4.6 Homework 142
5 Using the Container Classes 147
5.1 Container Classes in C++ 148
5.1.1 Vector 152
5.1.2 Deque 168
5.1.3 List 170
5.1.4 Stack 173
5.1.5 Queue 175
5.1.6 Priority 176
5.1.7 Map 178
5.1.8 Set 180
5.1.9 Generic Algorithms 181
5.2 Containers in Java 182
5.2.1 List 185
5.2.2 Set 189
5.2.3 Map 191
5.2.4 Vector 194
5.2.5 Algorithms for Java Containers 197
5.3 Credits and Suggestions for Further Reading 201
5.4 Homework 201
6 The Primitive Types and Their Input/Output 211
6.1 Tokens, Identifiers, and Variable Names 211
6.2 Primitive Types in C++ and Java 213
6.3 Boolean Type 213
6.4 Character Types 214
6.5 Integer Types 220
6.6 Floating-point Types 222
6.7 Type Conversion for the Primitive Types 223
6.7.1 Implicit Type Conversions in C++ 224
6.7.2 Implicit Type Conversions in Java 228
6.7.3 Explicit Type Conversion in C++ 232
6.7.4 Explicit Type Conversion in Java 234
6.8 I/O Streams for C++ 236
6.8.1 The C++ Stream Hierarchy 237
6.8.2 Input--Output Operations for Character Streams 238
6.8.3 Input--Output Operations for Byte Streams 246
6.8.4 Controlling the Format 252
6.8.5 String Streams 257
6.9 I/O Streams for Java 258
6.9.1 Writing Primitive Types 259
6.9.2 Writing Strings 267
6.9.3 Reading the Primitive Types 271
6.9.4 Reading Strings 273
6.10 Suggestions for Further Reading 274
6.11 Homework 275
7 Declarations, Definitions, and Initializations 283
7.1 When is a Declaration also a Definition? 283
7.2 Are the Defined Variables in C++ Initialized by Default? 286
7.2.1 What Happens When a No-arg Constructor Is Not Supplied? 289
7.2.2 Special Consideration for const and Reference Members 292
7.3 Are the Defined Variables in Java Initialized by Default? 293
7.3.1 Is Default Initialization Affected by Default Values for Class Members? 296
7.3.2 Is the Default Value of a Class Member Ignored If a Constructor Specifies a Value for the Member? 296
7.4 Declaration of Pointer Types in C++ 297
7.5 Arrays of Pointers in C++ 300
7.6 Declaring Multiple Names 302
7.7 Scope of an Identifier in C++ 303
7.8 Scope of an Identifier in Java 305
7.9 Arrays and Their Initialization in C++ 306
7.10 Arrays and their Initialization in Java 311
7.10.1 A Java Array Is an Object 313
7.10.2 java.lang.Arrays Class for Sorting, Searching, and so on 315
7.11 Symbolic Constants 317
7.12 Macros in C++ 319
7.13 The Enumeration Type in C++ 319
7.14 Credits and Suggestions for Further Reading 324
7.15 Homework 324
8 Object Reference and Memory Allocation 329
8.1 Object Reference in C++ 329
8.2 Object Reference in Java 332
8.3 Memory Allocation in C++ 333
8.4 Memory Allocation in Java 334
8.5 Structures in C++ 336
8.6 Homework 338
9 Functions and Methods 345
9.1 Function Declarations 346
9.2 Passing Arguments in C++ 346
9.2.1 Passing a Primitive Type Argument by Value 346
9.2.2 Passing a Primitive Type Argument by Pointer 347
9.2.3 Passing a Primitive Type Argument by Reference 349
9.2.4 Passing a Class Type Argument by Value 350
9.2.5 Passing a Class Type Argument by Pointer 351
9.2.6 Passing a Class Type Argument by Reference 352
9.3 Passing Arguments in Java 353
9.3.1 Passing a Primitive Type Argument by Value 353
9.3.2 Passing a Class Type Argument by Value of Object Reference 354
9.4 C++ Functions Returning Reference Types 358
9.5 Function Inlining in C++ 360
9.6 Static Variables in C++ 361
9.7 const Parameter and Return Type for C++ Functions 363
9.8 final Parameters for Java Methods 365
9.9 Array Arguments 366
9.10 Function Overload Resolution in C++ 366
9.11 Function Overload Resolution in Java 371
9.12 Default Arguments for C++ Functions 373
9.13 Pointers to Functions in C++ 374
9.14 Suggestions for Further Reading 377
9.15 Homework 377
10 Handling Exceptions 385
10.1 setjmp--longjmp for Multilevel Return in C 386
10.2 Exception Handling in C++ 389
10.3 Some Usage Patterns for Exception Handling in C++ 391
10.4 Differences between C++ and Java for Exception Handling 399
10.5 Java Syntax for Exception Handling 401
10.6 Some Usage Patterns for Exception Handling in Java 402
10.7 Checked and Unchecked Exceptions in Java 408
10.8 Suggestions for Further Reading 409
10.9 Homework 410
11 Classes, The Rest of the Story 415
11.1 Access Control of Constructors 415
11.1.1 Limiting the Number of Objects 416
11.1.2 Limiting the Access to No-Arg Constructor in C++ 418
11.2 Can Multiple Constructors Help Each Other 421
11.3 Static Members in C++ 422
11.3.1 Initialization and Destruction of Static Objects in C++ 428
11.4 Static Members in Java 430
11.5 const Member Functions in C++ 435
11.6 Self-reference in C++ 435
11.7 Self-reference in Java 439
11.8 Destructors in C++ 441
11.9 Object Destruction in Java 446
11.10 Copy Constructors and Copy Assignment Operators in C++ 450
11.11 Semantics of the Assignment Operator in Java 455
11.12 Object Cloning in Java 457
11.12.1 Cloning Arrays of Class-Type Objects 461
11.13 Pointers to Class Members in C++ 463
11.14 Interleaved Classes 466
11.15 A C++ Study of Interleaved Classes of Moderate Complexity 468
11.16 A Java Study of Interleaved Classes of Moderate Complexity 481
11.17 Suggestions for Further Reading 488
11.18 Homework 488
12 Overloading Operators in C++ 497
12.1 Operator Tokens and Operator Functions 498
12.2 Global Overload Definitions for Operators 498
12.3 Member-Function Overload Definitions for Operators 501
12.4 Global Overload Definitions for Unary Operators 504
12.5 Member-Function Overload Definitions for Unary Operators 505
12.6 A Case Study in Operator Overloading 506
12.7 Smart Pointers: Overloading of Dereferencing Operators 519
12.8 Overloading Increment and Decrement Operators 529
12.9 User-Defined Conversions 533
12.10 Overloading of the '()' Operator 538
12.11 Sorting Class-Type Objects by Overloading the '<' Operator 540
12.12 Credits and Suggestions for Further Reading 543
12.13 Homework 544
13 Generics and Templates 547
13.1 Templatized Classes and Functions in C++ 550
13.1.1 A C++ Implementation of a Linked-List Program 550
13.1.2 A Parameterized Linked-List Program 555
13.1.3 Template Specialization 560
13.1.4 General Syntax of a Template Declaration 563
13.2 Iterators Revisited 565
13.2.1 Iterator Categories for Generic Algorithms 565
13.2.2 How to Declare an Iterator 567
13.3 Parameterized Classes in Java 568
13.3.1 Creating Your Own Parameterized Types in Java 571
13.3.2 Parameterization of Methods 576
13.3.3 Constraining the Parameters 579
13.4 Credits and Suggestions for Further Reading 582
13.5 Homework 583
14 Modeling Diagrams for OO Programs 587
14.1 Use Case Diagram 588
14.2 Class Diagram 590
14.2.1 Association as a Relationship Between Classes 592
14.2.2 Aggregation and Composition as Relationships Between Classes 593
14.2.3 Representing Attributes 595
14.2.4 Representing Operations 595
14.2.5 Stereotypes 596
14.3 Interaction Diagram 597
14.3.1 Sequence Diagram 597
14.3.2 Collaboration Diagram 603
14.4 Package Diagram 604
14.5 Statechart Diagram 606
14.6 Activity Diagram 611
14.7 Credits and Suggestions for Further Reading 613
14.8 Homework 615
15 Extending Classes 617
15.1 Public Derivation of a Subclass in C++ 617
15.2 Constructors for Derived Classes in C++ 621
15.3 Copy Constructors for Derived Classes in C++ 624
15.4 Assignment Operators for Derived Classes in C++ 626
15.5 Overloading Operators for Derived Classes in C++ 628
15.6 Destructors for Derived Classes in C++ 632
15.7 Virtual Member Functions in C++ 638
15.7.1 Restrictions on Virtual Function Declarations 643
15.7.2 Virtual Functions in Multilevel Hierarchies 643
15.7.3 Can Operators Be Made to Behave Polymorphically 646
15.7.4 Polymorphic Types 646
15.8 Static versus Dynamic Binding for Functions in C++ 646
15.9 Restrictions on Overriding Functions in C++ 651
15.10 Virtual Destructors in C++ 655
15.11 Constructor Order Dependencies in C++ 657
15.12 Abstract Classes in C++ 660
15.13 Protected and Private Derived Classes in C++ 664
15.14 Extending Classes in Java 669
15.15 Restrictions on Overriding Methods in Java 673
15.16 Constructor Order Dependencies in Java 676
15.17 Abstract Classes in Java 677
15.18 Interfaces in Java 680
15.18.1 Implementing Multiple Interfaces in Java 685
15.18.2 Extending Interfaces in Java 686
15.18.3 Constants in Interfaces 689
15.19 A C++ Study of a Small Class Hierarchy with Moderately Complex Behavior 690
15.20 A Java Study of a Small Class Hierarchy exhibiting Moderately Complex Behavior 705
15.21 Credits and Suggestions for Further Reading 714
15.22 Homework 715
16 Multiple Inheritance in C++ 721
16.1 Some Examples for MI 722
16.2 Issues that Arise with Repeated Inheritance 729
16.3 Virtual Bases for Multiple Inheritance 731
16.4 Virtual Bases and Copy Constructors 737
16.5 Virtual Bases and Assignment Operators 740
16.6 Avoiding Name Conflicts for Member Functions 747
16.7 Dealing with Name Conflicts for Data Members 749
16.8 Implementation of an Example in Repeated Inheritance 751
16.9 Using Mixin Classes 760
16.10 Using Role-Playing Classes 768
16.11 Run-Time Type Identification in C++ 780
16.12 Credits and Suggestions for Further Reading 782
16.13 Homework 782
17 OO for Graphical User Interfaces, A Tour of Three Toolkits 789
17.1 A Brief History of GUI Toolkits 790
17.2 AWT/Swing Components 793
17.3 Qt Widgets 795
17.4 GNOME/GTK+ Widgets 795
17.5 Minimalist GUI Programs in AWT/Swing 796
17.6 Minimalist GUI Programs in Qt 801
17.7 Minimalist Programs in GNOME/GTK+ 804
17.8 Layout Management in GUI Programs 808
17.9 Layout Management in AWT/Swing 809
17.9.1 Border Layout 810
17.9.2 Flow Layout 812
17.9.3 Box Layout 815
17.9.4 Grid Layout 819
17.9.5 Card Layout 821
17.9.6 Grid-Bag Layout 825
17.10 Layout Management in Qt 830
17.10.1 Box Layout 831
17.10.2 Grid Layout 834
17.11 Layout Management in GNOME/GTK+ 837
17.11.1 Box Layout 837
17.11.2 Table Layout 839
17.12 Event Processing in GUI Programs 842
17.13 Event Processing in AWT/Swing 845
17.13.1 An Example in Inter-Component Communication in AWT/Swing 853
17.14 Event Processing in Qt 858
17.14.1 A Qt Example that requires Meta Object Compilation 861
17.14.2 Summary of Facts about Signals and Slots 870
17.15 Event Processing in GNOME/GTK+ 871
17.15.1 Communicating Events to Other Widgets in GNOME/GTK+ 872
17.15.2 Summary of Facts about Callbacks in GNOME/Gtk+ 879
17.16 Windows with Menus in AWT/Swing 881
17.17 Windows with Menus in Qt 886
17.18 Windows with Menus in GNOME/GTK+ 894
17.19 Drawing Shapes, Text, and Images in AWT/Swing 903
17.20 Drawing Shapes, Text, and Images in Qt 918
17.21 Drawing Shapes, Text, and Images in Gnome/GTK+ 926
17.22 Java Applets 936
17.22.1 Life Cycle of an Applet 937
17.22.2 The Applet Tag 938
17.22.3 An Applet Example 940
17.22.4 Dual-Purpose Programming for Applets 948
17.22.5 The AppletContext Interface 951
17.22.6 Security Issues Related to Applets 956
17.23 Credits and Suggestions for Further Reading 958
17.24 Homework 958
18 Multithreaded Object-Oriented Programming 963
18.1 Creating and Executing Simple Threads in Java 964
18.2 The Runnable Interface in Java 968
18.3 Thread States 970
18.4 Thread Interference in Java 971
18.5 Thread Synchronization in Java 979
18.7 Data I/O Between Threads in Java 988
18.8 Java Threads for Applets 990
18.9 The Event Dispatch Thread in AWT/Swing 993
18.10 Multithreaded Programming in C/C++ 1002
18.10.1 Demonstrating Thread Interference with POSIX Threads 1008
18.10.2 MUTEX for Dealing with POSIX Thread Interference 1010
18.11 Object-Oriented Multithreading in C++ 1018
18.12 Credits and Suggestions for Further Reading 1024
18.13 Homework 1025
19 Network Programming 1027
19.1 Establishing Socket Connections with Existing Servers in Java 1028
19.2 Server Sockets in Java 1031
19.3 Establishing Socket Connections with Existing Servers in C++ 1037
19.4 Server Sockets in C++ (Qt) 1044
19.5 Suggestions for Further Reading 1053
19.6 Homework 1053
20 Database Programming 1055
20.1 Relational Databases 1056
20.2 The MySQL Database Manager 1058
20.3 SQL 1059
20.4 JDBC Programming: Invoking SQL through Java 1070
20.5 Mysql++ Programming: Invoking SQL through C++ 1075
20.6 Suggestions for Further Reading 1081
20.7 Homework 1081






INDEX   INDEX   INDEX   INDEX   INDEX


*
    as iteration marker (UML)599
    for iterator dereferencing (C++), 154
    for multiple triggers (UML), 613
    for pointer dereferencing, 519
    for representing multiplicity (UML), 593
    to show all columns (SQL), 1062
&
    address operator (C++)297
    for iterator initialization (C++), 157
→, member access operator (C++), 519
→* (C++), 463
//, 9,14
:: (C++), 061,619
1..* (UML), 593
[] (C++), 114,150,510
.* (C++), 463
#, for protected visibility (UML),595
-, for private visibility (UML), 595
+, for public visibility (UML), 595
!=, 152,513
--, 154
++, 154
<< (C++), 009,628
>> (C++), 016
==
    (C++)513
    (Java), 079,135
< (C++), 079,171,176,178,182
⇐ (C++), 152
> (C++), 152,513
>= (C++), 152
<<>> (UML), 596
abort() (C++), 023,393
absolute positioning for layout, 810
abstract
    a keyword677
    class, 073,075,617,660,677,761
    function, 662
    method, 662
AbstractCollection (Java), 075,076
AbstractList (Java), 075,076
AbstractShape.cc, 661
AbstractShapeIncremental.cc, 662
AbstractShapeIncremental.java, 678
Abstract Window Toolkit (AWT/Swing), 793
accelerator, keyboard, 889,895
accept() (Java), 1032,1045
Access, 1059
access control, 003,030,071
access control
    package071
    private, 034,038,071
    protected, 071
    public, 034,038,071
acl.read property (Java), 957
acl.write property (Java), 957
acquiring lock
    on a class979
    on an object, 979
ActionEvent (AWT/Swing), 882
ActionListener (AWT/Swing), 845,847,850,882,883,941,954
actionPerformed() (AWT/Swing), 850,882,884,941
action (UML), 606
activate() (Qt), 833,836
activation (UML), 602
    icon, 598
activity
    diagram (UML)611
    state (UML), 606
actor (UML), 588
adapter
    class (AWT/Swing)845
    container (C++), 151,173,175
ADD (SQL), 1069
add() (Java), 182,186,190
addActionListener() (AWT/Swing), 799,848,850
addAll() (Java), 186
AddArray1.c, 006
AddArray2.c, 007
AddArray.cc, 007
AddArray.java, 010
addComponentListener() (AWT/Swing), 852
addElement() (Java), 194,196
addFocusListener() (AWT/Swing), 852
addImage() (AWT/Swing), 915
addItemListener() (AWT/Swing), 822
addKeyListener() (AWT/Swing), 852
addMouseListener() (AWT/Swing), 852
addMouseMotionListener() (AWT/Swing), 852
addMultiCellWidget() (Qt), 836
addWidget() (Qt), 833,835,836
addWindowListener() (AWT/Swing), 799,848,850
adjacent_find() (C++), 567
affine transformation, 919,928
aggregation (UML), 591,594
algorithm, a C++ header file, 008
ALIGN, 937,938
alignment (Qt), 833
ALT, 938
ALTER (SQL), 1067,1069
ALTER TABLE (SQL), 1062
American National Standards Institute, 008
amortized constant-time complexity, 151
anchor
    (C)927
    (Java), 827
animated applets, 964
animation, 990
Animator.java, 991
anonymous class (Java), 571,850
ANSI, 008
API, Application Programming Interface, 791
app (C++), 238,239
append()
    (C++)119
    (Java), 133,138
append file mode
    (C++)239
    (Java), 267
APPLET tag (HTML), 937,938,947
Applet (Java), 936
applet (Java)
    animated964
    context, 951
    security, 936
appletviewer tool (Java), 956,937,947
application, 013
    programming interface, 791
approximate numerics (SQL), 1060
argc, 020,804
argument-dependent name lookup (C++), 070
argument object, 503
argv, 020,804
ArithmeticException (Java), 409
arithmetic types (C++), 223
arity of an operator, 498,504
array
    (C)006
    (Java), 014
    declaration, (C++)306
        (Java)311
    initialization, (C++)301,308
        (Java)311
    of pointers (C++), 300
    parameter (C), 007
ArrayBasic.java, 313
array-like random access, 150
ArrayList (Java), 075,185,186,194,569,205,1034,569
Arrays (Java), 055,315
ArraysFill.java, 316
ArraySizeOf.cc, 128
ArraysShuffle.java, 317
ASCII, 109,212,214,215,218,247
asList() (Java), 201,315
assert() (C++), 121
assign() (C++), 129
assignment operator, (C++), 452
assignment operator
    (C++)626
    (Java), 455
AssignTest.java, 456
association (UML), 591,769
association (UML)
    bidirectional593
    binary, 593
    multiplicity, 592
    reflexive, 593
    rolename, 592
associative container (C++), 151,565
asynchronous
    image loading915
    method invocation, 601
at() (C++), 114
ate (C++), 239,248
atomic components
    (AWT/Swing)794
    (GNOME/GTK+), 796
    (Qt), 795
attribute(s)
    (UML)590
    of POSIX threads, 1003
    representation (UML), 595
    visibility (UML), 595
automatic type conversion
    (C++)224
    (Java), 228
    for assignment, 223
    for conversion of operands to common type, 223
     for conversion of returned value, 223
    for initialization, 223
    for matching argument with parameter, 223
    for primitive types, 223
auto_ptr (C++), 529
AWT (Java), 794,790,791,792
    thread, 993
back() (C++), 157,174,175
bad() (C++), 243
base, class, 031
        (C++)042
        (Java)047,669
        private (C++)618
        protected (C++)618
        public (C++)618
base
    class622
    indirect, 732
    virtual (C++), 731
baseline for drawing a string, 908
basic_ifstream<char> (C++), 237
basic_ifstream<wchar_t> (C++), 237
basic_istream<char> (C++), 237
basic_istream<wchar_t> (C++), 237
basic_ostream (C++), 008
basic_string (C++), 113
begin() (C++), 154,565
behavior of a class, 029
BidirectionalIterator (C++), 566,567,568
big-endian, 134,221,250,259
binary, 239
    I/O, (C++)247
binary
    I/O259
    mode, 246
    mode for I/O (C), 020
    numeric promotion, 215,227,232
    operator, 499
    stream (C++), 246
    association (UML), 593
BinaryFileIO.cc, 247
BinaryFileIO2.cc, 248
BinaryFileIO3.cc, 251
binary_search (C++), 182
binarySearch() (Java), 316
BIT (SQL), 1061
BIT (n) (SQL), 1061
bitset
    a C++ container class152
    a C++ header file, 008
bit strings (SQL), 1060
BIT VARYING (n) (SQL), 1061
block, 304
block
    nested (C++)304
    scope, (C++)066,303,304
        (Java)305
blocked state, 970
blocking
    inheritance (Java)680
    I/O, 016
BlockInheritance.cc, 052
BlockInheritance.java, 049
BlockInheritance2.java, 050
bool (C++), 213
boolean (Java), 019,211,213
bootclasspath (Java), 571
Border (AWT/Swing), 810,813
BorderFactory (AWT/Swing), 810,813,817,822
BorderLayout (AWT/Swing), 799,800,809,810,817
BorderLayoutTest.java, 810
born state, 967,970
BOTH (AWT/Swing), 826
BOTTOM (AWT/Swing), 813,822
bottom_attach (GNOME/GTK+), 840
BoxLayout (AWT/Swing), 809,815
BoxLayoutTest.java, 817
bridge driver, 1055
brighter() (AWT/Swing), 905
browser, 936,937,938
browser
    Java enabled939
    JVM, 937,940,942,943
BufferedOutputStream (Java), 264
BufferedReader (Java), 1029,205
buffered TCP socket, 1038
buffer flushing, 258
buffering of a stream, 258
byte (Java), 221
bytecode (Java), 011
byteWritten() (Qt), 1038
callback, 807,844,844,871,873,879,932
capacity, 197
capacity
    (C++)124
    (Java), 132
capacity() (Java), 132
CardLayout (AWT/Swing), 809,821
CardLayoutTest.java, 822
CASE_INSENSITIVE_ORDER, 137
case label, 305
cast, 117,223,232,234
casting away const (C++), 781
catch clause
    (C++)389
    (Java), 400
C++ compilation, 005
C++ compilation
    with CC010
    with g++, 009
CDE, 791
CENTER (AWT/Swing), 810,813,819,822,827
cerr (C++), 021,023,239
changeUpdate() (AWT/Swing), 854
char, 213,214,218,796
char
    signed796
    unsigned, 796
char*{} (C), 108
CHAR (n) (SQL), 1060,1061
CHAR (SQL), 1061
CHARACTER
    (SQL)1061
    VARYING(n) (SQL), 1061
CHARACTER(n) (SQL), 1061
Character (Java), 194
character, 211
character
    constant215
    escape, 215,215
    literal, 215
    strings (SQL), 1060
charAt() (Java), 134
CharEscapes.cc, 216
CharEscapes.java, 219
ChatServer
    (C++)1045
    (Java), 1031
ChatServer.cc, 1048
ChatServer.h (Qt), 1047
ChatServer.java, 1035
C header files used in C++, 386
C++ header files, 008
C++ header files
    algorithm008
    bitset, 008
    complex, 008
    deque, 008
    exception, 008
    fstream, 008
    functional, 008
    iomanip, 008
    ios, 008
    iosfwd, 008
    iostream, 008
    istream, 008
    iterator, 008
    limits, 008
    list, 008
    locale, 008
    map, 008
    memory, 008
    new, 008
    numeric, 008
    ostream, 008
    queue, 008
    set, 008
    sstream, 008
    stack, 008
    stdexcept, 008
    streambuf, 008
    string, 008
    typeinfo, 008
    utility, 008
    valarray, 008
    vector, 008
checked exception (Java), 025,399,408
cin (C++), 016,016,017,239
class, 002,029
class
    abstract617
    anonymous (Java), 850
    base, 031
        (C++042
        (Java)047
    behavior of, 029
    concrete, 076
    definition, (C++)032
        (Java)037
    derivation, private (C++)664
        protected (C++)664
        public (C++)617
        (Java)669
    derived, 031
        (C++)042,617
        (Java)046,669
    diagram (UML), 588,590
        conceptual592
        implementation592
        specification592
    extended, (C++)042,617
        (Java)046,669
    field of, 030
    generic, 547
    hierarchy, 030
        IsA031
        role-based768
    inner (Java), 091
    instance of, 029
    mixin, 721,760,761
    nested, 089
        static (Java)089
    parameterized, (C++)555
        (Java)568
    relationship, HasA591
        IsA591
    responsibility (UML), 592
    role playing, 721,768
    scope operator (C++), 036
    sub-, 031
    super-, 031
    template, 547
        (C++)083,555
        (Java)574
    variable, 422
ClassCastException (Java), 409,568,569,706
CLASSPATH environment variable, 012
classpath (Java), 011,057,570
    option, 005
clear() (Java), 182
clicked, a signal, 807
clicked()
    (GNOME/GTK+)871
    (Qt), 859
client, 1027,1028
ClientHandler
    (C++)1046
    (Java), 1031,1032
client--server networking model, 1027
ClientSocket.cc, 1041
ClientSocket.h (Qt), 1040
clone() (Java), 456,457
CloneArray1.java, 460
Cloneable (Java), 075,076,457
ClonableX.java, 458
CloneBasic.java, 458
CloneClassTypeArr.java, 462
CloneNotSupportedException (Java), 457
cloning (Java), 457
close() (C++), 023
Closing (Qt), 1039
closing, a stream, (C++)023,247,251
        (Java)024,261,263,266
CODE, 938
CODEBASE, 938
collaboration diagram (UML), 597,603
Collator (Java), 145
Collection (Java), 075,182,184
Collection (Java)
    GJ571
    view, 193
CollectionMaxGeneric.java, 577
Collections (Java), 197
    Framework, 080
Color (AWT/Swing), 810,813,905
command-line, arguments, (C++)019,801
command-line
    arguments024
    compilation, 005
        (C++)009
        (Java)011
        (Qt)802
comma separated values, 1073
comment delimiters, 009
commenting code, 009,014
Common Desktop Environment, 791
communication (UML), 590,590
communication association (UML), 590
Comparable (Java), 081,136,579
Comparator (Java), 137,145,183,186,198,576,577,579
compare()
    (C++)115
    (Java), 137
compareTo() (Java), 081,135,136,183,186
comparing objects, 077
compiling
    (C++)009
    (GNOME/GTK+), 805
    (Java), 011
    (Qt), 802,862
complex, a C++ header file, 008,009
Component (AWT/Swing), 797,852,903,904,916
component
    heavyweight (AWT/Swing)793
    lightweight (AWT/Swing), 793
    peered (AWT/Swing), 793
    peerless (AWT/Swing), 793
ComponentEvent (AWT/Swing), 852
composite key (SQL), 1062
composition (UML), 591,594
compound stream (Java), 264
concat() (Java), 129
conceptual perspective (UML), 592
concrete class, 076
concurrent
    computing963
    processing, 602
    statechart diagram (UML), 608
ConcurrentModificationException, 189,205
condition
    function (C++)243
    synchronization bar (UML), 611
    variable (POSIX), 1010,1013
connect
    declaration (Qt)844
    signal with slot (Qt), 859
connect() (Mysql++), 1076
connected() (Qt), 1038
Connecting (Qt), 1039
connectionClosed() (Qt), 1038
Connection
    (Java)1070
    (Mysql++), 1075
connectToHost() (Qt), 1038,1038
const (C++), 051,076,292,317,595
const (C++)
    char*{}116
    function parameter, 345,363
    member function, 435
    return type from a function, 364
constant-time complexity, 150
const_cast (C++), 234,781
const_iterator (C++), 169,568
ConstRefReturn.cc, 359
const_reverse_iterator (C++), 568
constructor, 033,038
    derived class, (C++)621
constructor
    derived class669
    no-arg, (C++)043,286,288,289,307,621,623
        (Java)047,296,297,312,313,669
    one-arg, for implicit type conversion (C++), 535
    order dependencies, (C++)657
        (Java)676
    overloading, (C++)366
        (Java)371
ConstructorLeak.cc, 521
ConstructorLeakPlugged.cc, 528
ConstructorOrder.cc, 657
ConstructorOrderFoo.cc, 659
ConstructorOrderFoo.java, 676
Container (AWT/Swing), 797,904
container, classes, (C++)148
container
    classes182
    GUI, intermediate (AWT/Swing)794
        intermediate (GNOME/GTK+)796
        intermediate (Qt)795
        top-level (AWT/Swing)793
        top-level (GNOME/GTK+)796
        top-level (Qt)795
containment hierarchy, 793,801,802
content pane (AWT/Swing), 797,798
conversion specifier (C), 015
coordinate transformation, 910,919,919
copy, assignment operator (C++), 166,450,452,508
copy
    assignment operator (C++)452
    constructor (C++), 113,450,452,507
        example definition452
        for derived class624
        for multiple bases625
        prototype452
    on return from function (C++), 359
copy() (C++), 206,566
CopyAssignX.cc, 454
copyInto() (Java), 195
CopyOnReturn.cc, 358
CountDestructorInvoc1.cc, 377
CountDestructorInvoc2.cc, 378
CountDestructorInvoc3.cc, 378
CountDestructorInvoc4.cc, 379
CountDestructorInvoc5.cc, 380
CountDestructorInvoc6.cc, 381
cout (C++), 008,023,239
cp, for classpath (Java), 570
CrazyWindow.c, 874
CrazyWindow.cc, 864
CrazyWindow.h (Qt), 864
CrazyWindow.java, 855
createEmptyBorder() (AWT/Swing), 817
createHorizontalGlue() (AWT/Swing), 816,817
createHorizontalTextPosition() (AWT/Swing), 822
createLineBorder() (AWT/Swing), 810,813,819,822
createRigidArea() (AWT/Swing), 815,817
createStatement() (Java), 1070
CREATE TABLE (SQL), 1060,1063,1073
createVerticalGlue() (AWT/Swing), 816
.cshrc, 570
C++ Standard Library, 008
c_str() (C++), 114
C-style string, 108
csv, 1073
cur (C++), 241
currentTimeMillis() (Java), 055,056
daemon thread, 1003,1025
darker() (AWT/Swing), 905
DashDotLine (Qt), 921
DashLine (Qt), 921
data
    abstractions, uncoupling of726
    encapsulation, 029
    hiding, 030
    member, 029,032,037
database, 1055
database
    desktop-based1057
    driver, 1055,1058
    management system, 1058
    programming, 002
    relational, 1056,1057
    server-based, 1057
    URL, 1059
DataInputStream (Java), 271,273,990
DataOutputStream (Java), 264,269,270,990
Date.cc, 425
Date.java, 432
DATE (SQL), 1061
datetimes (SQL), 1060
DB2, 1059
dBase, 1059
DBFriends1.java, 1071
DBFriends2.java, 1074
deadlock, 1013,983
    irresolvable, 987
dead state, 970
dec, a stream manipulator (C++), 253
DECIMAL (SQL), 1061
decimal integer literal, 221
decision activity (UML), 612
declaring
    an identifier283
    multiple names, 302
    pointer types (C++), 297
decompiling (Java), 975
decrement operator, overloading of (C++), 529
default
    arguments for C++ functions373
    initialization, array307,312
        (C++)286
        (Java)293
        template parameter (C++)564
    layout manager, 809
DefaultInit.cc, 287
DefaultInit.java, 294
DefaultInit2.cc, 288
DefaultInit2.java, 295
DefaultInit3.cc, 289
DefaultInit3.java, 296
DefaultInit4.cc, 290
DefaultInitClassArray.cc, 309
DefaultInitClassArray2.cc, 310
DefaultInitPrimArray.cc, 308
$\#$define (C++), 319
defining an identifier, 283
delayedClosedFinished() (Qt), 1038
DELETE (SQL), 1068
delete (C++), 034,046,299,334,443,520,633
delete() (Java), 141
delete[] (C++), 046,334,444,520
deleteCharAt() (Java), 135
delimiter character, 192,211
depth index, 798
deque
    a C++ container class567
    a C++ header file, 008
DequeFront.cc, 168
dereferencing
    an iterator (C++)154
    a pointer (C++), 297
    operator (C++), 519
derivation, class (C++), private664
        protected664,728
derivation
    class (C++)617
    class (Java), 669
DerivedAssignOp.cc, 626
derived class, 031
    (C++), 042
        private664
        protected664
        public621
        constructor621
        copy constructor624
derived class
    (C++)632
    (Java), 047
        constructor669
DerivedConstructor.cc, 621
DerivedConstWithBaseNoArg.cc, 622
DerivedCopyConstruct.cc, 624
DerivedDestructCase1.cc, 633
DerivedDestructCase2.cc, 634
DerivedDestructCase3.cc, 636
DerivedNameConflict.cc, 620
DerivedOverloadOp.cc, 629
DESCRIBE (SQL), 1064,1069
deselecting a layout manager, 830
design patterns, 003,789
desktop-based database, 1057
Dest.cc, 054
destroy() (AWT/Swing), 937
Destruct.cc, 441
Destruct2.cc, 442
destructor (C++), 034,054,166,507,617
destructor (C++)
    default definition633
     explicit invocation, 446
    for derived class, 632
    virtual, 727,781
DestructorNecessary.cc, 444
DestructWhenNot.cc, 445
detachstate (POSIX), 1003
diamond class hierarchy (C++), 785
DiffScope.cc, 370
Dimension (AWT/Swing), 813,815,816,817
Dining Philosophers Problem, 1025
directive, using (C++), 009,064
disjunctive activity (UML), 612
dispatcher thread (Java), 965
DNS lookup, 1038
Document (AWT/Swing), 854,854
DocumentEvent (AWT/Swing), 847,854
DocumentListener (AWT/Swing), 847,854,854
DotLine (Qt), 921
double, 213,222
double
    largest positive value222
    precision, 222
    smallest positive value, 222
DOUBLE PRECISION (SQL), 1061
downcasting (C++), 780
dramatic result set (Mysql++), 1077
drawImage() (AWT/Swing), 916,916
drawRect()
    (AWT/Swing)905
    (Qt), 920
drawString() (AWT/Swing), 908
driver manager, 1059
DriverManager (Java), 1059,1070
DROP TABLE (SQL), 1062,1067
DuplicateBase.cc, 743
dynamically expandable array, 075
dynamic binding (C++), 647
dynamic_cast (C++), 234,700,780
    with object reference, 781
EAST (AWT/Swing), 810,827
ECHO network service, 1028
elementAt() (Java), 195,195
EMBED tag, 947
emission
    of event844
    of signal, 844
Employee.h, 694
empty, space (AWT/Swing), glue815
        invisible component815
empty
    space (AWT/Swing)815
    string, (C++)113
        (Java)132
empty() (C++), 174,175
encapsulation, 003,029,030
    in simulated OO in C, 095
EnclosedClassAccess.cc, 087
EnclosingClassAccess.java, 090
end() (C++), 154,565
endl, a stream manipulator (C++), 255
end-of-file, 016
ends, a stream manipulator (C++), 255
endsWith() (Java), 141
entrySet() (Java), 194
enum (C++), 088,214,319
Enum.cc, 320
enumerator (C++), 320
EnumWithLabelArray.cc, 323
EOF (C), 021
eof() (C++), 023,243
equality operator (C++), 513
EqualityTest.java, 080
equals() (Java), 079,135
erase() (C++), 123,159,180,208
erase substring
    (C++)123
    (Java), 141
ErrConnectionRefused (Qt), 1040
ErrHostNotFound (Qt), 1040
error(), 1038
error code, returned by pthread function (POSIX), 1003
error indicators for I/O stream (C), 021
Error (Java), 408
ErrSocketRead (Qt), 1040
escape
    hexadecimal215
    octal, 215
    sequence, 215
event, 932
event
    definition842
    emission, 844
    high-level (AWT/Swing), 845
    high-level (Qt), 858
    in UML, 606
    low-level (AWT/Swing), 845
    low-level (Qt), 858
    processing, 842
        by macros and messages844
        by virtual function (Qt)844
        loop844
        loop (AWT/Swing)845,857,993
        loop (GNOME/GTK+)871
        loop (Qt)802,858
    queue, 842
    source, 845
eventDestroy() (GNOME/GTK+), 807,873
Event Dispatch Thread (AWT/Swing), 857,942,964,965,993,995,999
Event[Guard]/Action (UML), 606
EventThreadDemo.java, 993
EventThreadDemo2.java, 995
``exactly one superclass'' rule (Java), 680
exact numerics (SQL), 1060
Excel, 1059
Exception (Java), 399
exception
    a C++ header file009
    checked (Java), 399,408
    handler, 389
    handling, differences between C++ and Java, 399
    specification, (C++)393
        (Java)403,674
    unchecked (Java), 399,408
ExceptionUsage1.cc, 392
ExceptionUsage1.java, 402
ExceptionUsage2.cc, 392
ExceptionUsage2.java, 403
ExceptionUsage3.cc, 393
ExceptionUsage3.java, 403
ExceptionUsage4.cc, 394
ExceptionUsage4.java, 404
ExceptionUsage5.cc, 395
ExceptionUsage5.java, 405
ExceptionUsage6.cc, 396
ExceptionUsage6.java, 406
ExceptionUsage7.cc, 397
ExceptionUsage7.java, 407
ExceptionUsage8.cc, 397
ExceptionUsage9.cc, 398
exec() (Qt), 802,831,832,834,836
executable class, 013
execute() (Mysql++), 1076
executeQuery() (Java), 1070
exit()
    (C)020
    (C++), 023
EXIT_FAILURE (C), 019,020
expand (GNOME/GTK+), 838
expandable empty space (AWT/Swing), 816
ExplicitCast1.cc, 232
ExplicitCast1.java, 234
ExplicitCast2.cc, 233
ExplicitCast2.java, 235
explicit
    constructor invocation (Java)422
    keyword for suppressing implicit type conversion (C++), 527,535,536
    type conversion, 223
        (C++)232,234,618
        (Java)234
extend (UML), 590
extended
    class (C++)042
    class (Java), 047
extending, a class, C++664,664,617
extending
    a class669
    an interface (Java), 686
extends (Java), 047,669
extension point (UML), 590
extern, 069
     ``C'' directive (C++), 386,488
extracting substring
    (C++)122
    (Java), 141
extraction operator (C++), 016
fail() (C++), 243
fail-fast (Java), 189,204
fast mutex (POSIX), 1011
fclose() (C), 019
ferror() (C), 019
field, 030,032,037
FILE*{} (C), 020
FileCopy.c, 019
FileCopy.cc, 021
FileCopy.java, 023
FileDialog (AWT/Swing), 883
FileInputStream (Java), 024
FileOutputStream (Java), 262,270
file, pointer, (C)020
        (C++)239
file
    pointer266
    scope (C++), 303,304
FileReader (Java), 027,205
FileWriter (Java), 263,266,269
fill
    (AWT/Swing)826
    (GNOME/GTK+), 838
    (Qt), 920
    methods for Java arrays, 315
    methods for C++ containers, 182
fill()
    (C++)253
    (Java), 316
fill_color, 927
Filler (AWT/Swing), 816
fillOval() (AWT/Swing), 908
finalization (Java), 055,446
finalize() (Java), 055,446,447
finalizer thread (Java), 965
final (Java), 317,365,595,690
final (Java)
    for blocking inheritance049
    for read-only variable, 051,076
    function parameter, 345
finally (Java), 401,405
find() (C++), 120,159,182,565,566
find_first_not_of() (C++), 120
find_first_of() (C++), 120
find_last_not_of() (C++), 120
find_last_of() (C++), 120
FINGER network service, 1028
first (C++), 179
first-in first-out scheduling, 1004
FirstWindow.c, 805
FirstWindow.cc, 801
FirstWindow.java, 796
FirstWindowWithButton.c, 806
FirstWindowWithButton.cc, 803
FirstWindowWithButton.java, 799
fixed, a stream manipulator (C++), 255
flat file, 1073
FLOAT (SQL), 1061
float, 213,222
float
    largest positive value222
    precision, 222
    smallest positive value, 222
floating
    a component809
    pallet, 798
    toolbar, 798
floating-point, 211
floating-point
    arithmetic227
    exponent, 222
    fraction, 222
    literal, 223
    mantissa, 222
    overflow, 222
    precision, 222
    sign, 222
    types, 222
    underflow, 222
FlowLayout (AWT/Swing), 794,800,809,812
FlowLayoutTest.java, 813
flush, a stream manipulator (C++), 255
flushing an output stream buffer (C++), 255
FOC, focus of control (UML), 602
FocusEvent (AWT/Swing), 852
focus of control (UML), 602
Font (AWT/Swing), 908
font, default, 908
FontFamilies.java, 908
fopen() (C), 019,020
FOREIGN KEY (SQL), 1061
format state of a stream (C++), 252
ForwardIterator (C++), 566,567
fprintf() (C), 019
Frame (AWT/Swing), 794
FRAMESET tag, 952
free-form sketching, 919
friend (C++), 053,072,420,503,628
Friend.cc, 072
front() (C++), 157,175
frozen (UML), 595
fstream
    a C++ header file238
    a read and write stream (C++), 239
FTP network service, 1028,1028
function
    calling modes357
    call operator (C++), 538
    inlining (C++), 345,360
    object (C++), 079,176,207,538
    overloading, 345
        (C++)366,368
    overriding, 044
        (C++)046,049
        (Java)047
    parameterized, (C++)557
        (Java)577
    prototype (C++), 022,346
    prototype scope (C++), 303,305
    scope (C++), 303,305
    signature, 369,651
    stack, 388
    template, (C++)556,557
        (Java)577
    virtual (C++), 044
    vs. method, 345
functional, a C++ header file, 008,176
functor (C++), 538,693
fundamental types, 213
g++, 009
garbage collection, 964
garbage collection
    C++334
    Java, 055,335,446
gboolean (GNOME/GTK+), 880
gc() (Java), 055
gchar (GNOME/GTK+), 796
GC.java, 447
gcount() (C++), 245,247
GC_Resurrect.java, 449
GDK_2BUTTON_PRESS, 932
GDK_3BUTTON_PRESS, 932
GDK_BUTTON_PRESS, 932
GDK_BUTTON_RELEASE, 932
GDK, 795
GDK_DRAG_ENTER, 932
GDK_DRAG_LEAVE, 932
GDK_DRAG_MOTION, 932
GdkEvent*{}, 932
GdkEventButton*{}, 932
gdk_imlib_create_image_from_xpm_data(), 927
GdkImlibImage, 927
GDK_MOTION_NOTIFY, 932
generalization, 591,769
    UML, 590
generic, algorithms, (C++)181
generic
    algorithms197
    class, 547,568
    program, 548
Generic Java, 569
getAllFonts() (AWT/Swing), 908
getAppletContext() (Java), 956
getAppletInfo() (AWT/Swing), 946
getAvailableFontFamilyNames() (AWT/Swing), 908
get() (C++), 015,017,021,022,243,247
getc() (C), 019,021,021,021
getchar() (C), 014,015
getColumnCount() (Java), 1071
getConnection() (Java), 1059
getContentPane() (AWT/Swing), 798
getDefaultToolkit() (AWT/Swing), 915
getFile() (AWT/Swing), 883
getFilePointer() (Java), 266
getID() (AWT/Swing), 852,914
getImage()
    (AWT/Swing)915
    (Java), 991
getInputStream() (Java), 1029
getInsets() (AWT/Swing), 904
getline() (C++), 245
getLocalGraphicsEnvironment() (AWT/Swing), 908
getMetaData() (Java), 1071
getOutputStream() (Java), 1029
getParameter() (Java), 956
getParameterInfo() (AWT/Swing), 946
getPoint() (AWT/Swing), 915
get position (C++), 240
getProperty() (Java), 957
GET request, 1028,1029
GetThirdType.cc, 244
getX() (AWT/Swing), 915
getY() (AWT/Swing), 915
GHBoxTest.c, 838
.gif, 915
GIF, 915
GIMP (GNOME/GTK+), 795
GIMP Drawing Kit (GNOME/GTK+), 795
GIMP Took Kit (GNOME/GTK+), 795
gint16 (GNOME/GTK+), 796
gint8 (GNOME/GTK+), 796
gint (GNOME/GTK+), 796,880
gjc (Java), 569
gjc.Main (Java), 570
gjcr (Java), 569
GJ (Java), 569
glass pane (AWT/Swing), 797,798,799
glib library (GNOME/GTK+), 795
global
    namespace (C++)386
    overload definition (C++), 498
    scope (C++), 062
glue
    (AWT/Swing)816
    code (Qt), 862
g_malloc() (GNOME/GTK+), 796
GNOME_APP, 896
gnome_app_create_menus(), 896
gnome_app_new(), 804
GNOME_APP_PIXMAP_FILENAME, 896
GNOME_APP_PIXMAP_NONE, 896
GNOME_APP_UI_HELP, 895,897
GNOME_APP_UI_ITEM, 895
GNOME_APP_UI_SUBTREE, 895,897
GNOME, 871
GnomeCanvas, 926,932
GnomeCanvasGroup, 874,926
GnomeCanvasItem, 874,874
gnome_canvas_item_new(), 874,926
gnome_canvas_line_get_type(), 933
GnomeCanvasPoints, 928
GnomeCanvasPoints*{}, 933
gnome_canvas_root(), 874
gnome_canvas_set_scroll_region(), 927
gnome-config, 805
GNOME, desktop environment, 790,793,795
GNOME/GTK+, 002,795
gnome_init(), 804
GnomeUIInfo, 894,897
GNOMEUIINFO_END, 897
GNOMEUIINFO_HELP, 897
GNOMEUIINFO_SEPERATOR, 897
GNOMEUIINFO_SUBTREE, 897
GNU
    C++ compiler, g++009
    General Public License, 1058
    Image Manipulation Program (C), 795
    Object Modeling Environment (C), 795
golden proportion, 789
good() (C++), 243
GPL, 1058
g_print() (GNOME/GTK+), 796
grant table, 1058
graphical user interface, 002
Graphics2D (AWT/Swing), 903,910
Graphics (AWT/Swing), 794,854,903,903,904,905,907
graphics context, 903
GraphicsDevice (AWT/Swing), 909
GraphicsEnvironment (AWT/Swing), 908
green threads, 964
GridBagConstraints (AWT/Swing), 825,827
GridBagLayout (AWT/Swing), 809,825
GridBagLayoutTest.java, 828
gridheight (AWT/Swing), 826
GridLayout (AWT/Swing), 809,819,849
GridLayoutTest.java, 819
gridwidth (AWT/Swing), 826
gridx (AWT/Swing), 826
gridy (AWT/Swing), 826
GTK+, 790,793
GtkAttachOptions, 840
GtkBin, 880
gtk_box_pack_end(), 839
gtk_box_pack_start(), 838,839
GtkButton, 879
gtk_button_new_with_label(), 807,840
GTK, 795
GTK+, 791,795,871
GTK_CONTAINER, 805
GtkContainer, 880
gtk_container_set_border_width(), 805
gtk_editable_get_chars(), 874
gtk_editable_get_position(), 874
GtkHBox, 837
gtk_hbox_new(), 837
gtk_idle_add(), 881
gtk_main(), 805,871,881
gtk_main() (GNOME/GTK+), 808
gtk_main_quit(), 871,881
gtk_main_quit() (GNOME/GTK+), 805,808
GtkModifierType, 896
GtkObject, 796,880
GTK_POLICY_NEVER, 874
gtk_scrolled_window_add_with_viewport(), 873
gtk_scrolled_window_new(), 873
gtk_scrolled_window_set_policy(), 873,874
gtk_signal_connect(), 871,879,932
gtk_signal_emit(), 871
gtk_signal_emit_by_name(), 871
gtk_signal_query(), 880,880
GtkSignalQuery, 880
GtkTable, 837,839
gtk_table_attach_defaults(), 840
gtk_text_new(), 873
gtk_text_set_line_wrap(), 873
gtk_type_name(), 880
GtkVBox, 837
gtk_vbox_new(), 839
GtkWidget, 796,880
gtk_window_new(), 804,873
GTK_WINDOW_TOPLEVEL, 804
guard (UML), 606
guchar (GNOME/GTK+), 796
GUI, 002
    history, 790
handler, exception, 389
handshaking for reliable transmission, 1028
HasA relationship, 591
hash, map, (C++)180
hash
    map191
    table, (C++)151
        (Java)184
hash_map, a C++ container class, 180
HashMap, a Java container class, 184,191,191
HashSet, a Java container class, 189
HashTable, a Java container class, 184
hasMoreTokens(), 205
hasMoreTokens() (Java), 027
hasNext() (Java), 186,190
hasPrevious() (Java), 186
heap, 299,632
heavyweight component (AWT/Swing), 793
HEIGHT, 938
height-balanced binary tree, 183,191
HelloThreadWithJoin.cc, 1018
hex, 216
hex
    a stream manipulator (C++)253
    dump, 246
hexadecimal
    digit216
    escape, 215
    integer, literal221
    notation, 221
HideScope.cc, 304
hierarchical structures, 001
hierarchy, 030
    role-based, 768
high-level event, 845,858
hints to a layout manager, 815
homogeneous (GNOME/GTK+), 837,840
HORIZONTAL (AWT/Swing), 826
hostFound() (Qt), 1038,1041
HostLookup (Qt), 1039
.hotjava, 957
HSPACE, 938
HTML, 937,939,947,953,990
HTMLConverter tool, 947
HTTPD server, 1028,1029,1040
IDE, 845
identifier, 211,212
identifier
    declaration283
    default initialization, 283
    definition, 283
    scope, 283
Idle (Qt), 1039
idle function, 881
ID number, 880
IEEE 754 Standard, 222,227
ifstream (C++), 021,022,237,238
ignore() (C++), 245
IllegalArgumentException (Java), 409
Image (AWT/Swing), 915,940,942
ImageIcon (AWT/Swing), 810,813,819,822,940,942,943
ImageLoadAndDisplay.java, 917
image loading
    asynchronous915
    monitoring of, 915
ImageObserver (AWT/Swing), 916,916
immutable, 129,200
implementation inheritance (C++), 665
ImplementationInheritance.cc, 667
implementation perspective (UML), 592
implementing an interface (Java), 077
implicit type conversion, 223
implicit type conversion
    (C++)533
    for class-types (C++), 534
    (Java), 228
import (Java), 024,056,056,057,605
in (C++), 239,239
include (UML), 590
including C header files in C++, 386
increment operator overloading (C++), 529
indefinite number (UML), 593
indexOf() (Java), 140
IndexOutOfBoundsException (Java), 315
indirect base, 732
indirection (C++), 297
$inf$, 222
inheritance, 003,029,031,043
inheritance
    in simulated OO in C095
    loop (C++), 760
    multiple (C++), 075
inheritsched (POSIX), 1004
init() (AWT/Swing), 903,936,937,941,991
initial capacity, 186,190
initialCapacity, 197
initialization of, arrays, (C++)301,307,308
initialization of
    arrays311
    base-class subobject, (C++)623
        (Java)669
    class type, default (C++)287
        default (Java)296
    const class member (C++), 292
    reference type (C++), 292,330
    object reference, (Java)333
    static class members (C++), 423,423
    static class members (Java), 433
    static const class members (C++), 422
    static final (Java), 430
    variables, default (C++)286
        default (Java)293
initialization static (C++), 422
inlining (C++), 036,345,360
inner class (Java), 091
InnerClass.java, 092
InnerClassThisPrefix.java, 092
input
    operator (C++)016
    stream manipulators (C++), 255
    stream object state (C++), 023
InputEvent (AWT/Swing), 845
InputIterator (C++), 566,566
InputStream (Java), 018,1029,259,990
INSERT (SQL), 1060,1062
insert()
    (C++)159
    (Java), 141
insert substring
    (C++)123
    (Java), 141
insertElement() (Java), 196
inserter iterator (C++), 567
insertion
    formatted (C++)009
    operator (C++), 009
insertUpdate() (AWT/Swing), 854,999
Insets (AWT/Swing), 904
insets (AWT/Swing), 827
instance of a class, 029
instantiating a class, 002,033
INT (SQL), 1060
int, 213,220
IntComparator (Java), 577
INTEGER (SQL), 1061
integer, 211
Integer (Java), 018,939
Integer.java, 579
integer, literal, 221
        decimal221
        hexadecimal221
integer
    literal221
    types, 220
IntegerGeneric.java, 581
Integer.parseInt() (Java), 017
integral types
    (C++)223
    (Java), 223
interaction diagram (UML), 588,597
Interactive Design Environment, 845
interface (Java), 003,074,075,680
interface (Java)
    for packaging constants689
    nested, 089
    parameterized, 573
interference, thread, 971
Interleaved.cc, 470
interleaved classes, 298,466
Interleaved.java, 481
intermediate GUI containers, 794,795,796
intern() (Java), 130
InternalFrame (AWT/Swing), 794
internal linkage (C++), 069,304
International Standards Organization, 008
internet auction example, 588
InterruptedException (Java), 984
INTERVAL DAY (SQL), 1061
intervals (SQL), 1060
intValue() (Java), 191
invariances, 789
invisible component (AWT/Swing), 816
invokeAndWait() (AWT/Swing), 1000
invokeLater() (AWT/Swing), 1000
invoking
    a function on an object016
    object, 503
I/O, binary, (C)020
        (C++)246
I/O
    binary261
    character based, (C++)238
        (Java)261
    modes, 016
        asynchronous016
        blocking016
        nonblocking016
    stream hierarchy, (C++)237
        (Java)258
IOException (Java), 025
iomanip, a C++ header file, 008,256
ios, a C++ header file, 008
ios::app (C++), 238,239
ios::ate (C++), 239,248
ios::binary (C++), 239
ios::cur (C++), 241
ios::fixed (C++), 255
ios::in (C++), 239,239,241
ios::left (C++), 253
ios::noshowpoint (C++), 254
ios::noskipws (C++), 255
ios::out (C++), 239,239,241
ios::scientific (C++), 254
ios::showbase (C++), 254
ios::showpoint (C++), 254
ios::skipws (C++), 255
ios::trunc (C++), 239
iosfwd, a C++ header file, 008
iostream
    a C++ header file008
    a C++ I/O stream class, 237
IP address, 1027,1028
ipadx, padding variable (AWT/Swing), 827
ipady, padding variable (AWT/Swing), 827
irresolvable deadlock, 987
IsA relationship, 031,591,682
isEmpty() (Java), 183
isEventDispatchThread() (AWT/Swing), 993
ISO, 008,421
ISO-Latin-1, 133
istream
    a C++ header file008
    a C++ input stream class, 237
istringstream (C++), 257
istrstream (C++), 257
itemStateChanged() (AWT/Swing), 822
Iterator (Java), 186,190
    GJ, 571
iterator
    a C++ header file008
    adapter (C++), 567
    (C++), 153,171,181,565
        BidirectionalIterator567
        class565
        forward incrementing566
        initialization565
        RandomAccessIterator567
    (Java), 190
    dereferencing (C++), 154
iterator() (Java), 183
JApplet (AWT/Swing), 793,794,797,936,1000
JAR archive (Java), 012
jar, the Java archive tool, 012
Java
    bytecode011
    Collections Framework, 205
    compilation, 005,011
    Database Connectivity, 1055
    enabled browser, 939
    Foundation Classes, 794
    Plug-in for Swing applets, 947
    Runtime Environment, 947
    Virtual Machine, 011,936,964,965
java, the Java application launcher, 011
java.awt.event package, 793
java.awt.image package, 916
java.awt package, 793
javac, the compiler for Java, 011
javadoc, Java documentation tool, 014
java.io package, 024,027,267
java.lang package, 056
java.net package, 1028,1032
javap, the Java class file disassembler, 975
java.sql package, 1059,1070
java.util package, 185,186,190,193
    GJ version, 569
javax.swing.event package, 793
javax.swing package, 793,797
JButton (AWT/Swing), 794,827,850
JComboBox (AWT/Swing), 821
JComboBox (AWT/Swing)
    editable821
    uneditable, 821
JComponent (AWT/Swing), 798,799,850,903
JDBC (Java), 1055,1057,1070
    driver, 1055
JDBC-ODBC bridge driver, 1059
JDialog (AWT/Swing), 793,794,797,1000
JFC (AWT/Swing), 794
JFrame (AWT/Swing), 793,794,797,797,948,1000
JIT, just-in-time Java compilation, 011,965
JLabel (AWT/Swing), 810,813,819,821,822,940,942
JLayeredPane (AWT/Swing), 797
JList (AWT/Swing), 816,822
jmp_buf (C), 386
join() (Java), 967
join strings
    (C)110
    (C++), 118
    (Java), 138
JPanel (AWT/Swing), 794,798,816,822,853
JPEG, 915
.jpg, 915
JRadioButton (AWT/Swing), 822
JRE, 947
JRootPane (AWT/Swing), 797
JScrollBar (AWT/Swing), 794
JScrollPane (AWT/Swing), 794,816,942
JTabbedPane (AWT/Swing), 794,821
JTextArea (AWT/Swing), 854
JTextField (AWT/Swing), 794
just-in-time Java Compilation, 011
JVM, 011,936,942
KEY (SQL), 1061
keyboard
    accelerator895
    buffer, 016
KeyEvent (AWT/Swing), 845,852
keySet() (Java), 194
key-sorted order, 184
<key, value> pair, 149,151,178
keyword, 211
kind (UML), 596
kind (UML)
    in596
    inout, 596
    out, 596
Koenig.cc, 070
Koenig lookup (C++), 070,304
label, 305
lastIndexOf() (Java), 140
Latin-1, 213,218
layered pane (AWT/Swing), 797,798
layout management, 808,809
layout management
    (AWT/Swing)809
    (GNOME/GTK+), 837
    (Qt), 830
LayoutManager (AWT/Swing), 830
lazy instantiation, 416
ldconfig, 802
ld.so.conf, 802
least-common-denominator approach, 794
left, a stream manipulator (C++), 253
left_attach (GNOME/GTK+), 840
Left.java, 954
length (Java), 314
length()
    (C++)124
    (Java), 132
less, a function object (C++), 176
lexicographic ordering, 109,136
libqt-mt (Qt), 1019
lifeline (UML), 597
lightweight (AWT/Swing)
    component794
    container, 797
limits, a C++ header file, 008
linear time complexity, 150
linkage, internal (C++), 069
LinkedList, (C++), 548
LinkedList
    (C++)555
    (Java), a container class186
        GJ571
LinkedList.cc, 551
LinkedList<double> (C++), 548
LinkedListGeneric.cc, 557
LinkedListGeneric.java, 574
LinkedList<int> (C++), 548
LinkedList<Integer> (Java), 549
LinkedList.java, 571
LinkedListSpecialized.cc, 561
LinkedList<string> (C++), 548
LinkedList<String> (Java), 549
Linux, 1058,802,964,965
LinuxThreads, 1013
List
    a Java container class569
    (AWT/Swing), 954
list, (C++), a container class149,150,170,567
list
    (C++)008
    (Java), 182,185,194
ListGeneric.java, 569
ListIterator (Java), 186
ListMixedType.java, 569
ListOps.cc, 171
ListOps.java, 186
List<String> (Java), 569
literal
    character215
    floating-point, 223
    integer, 221
    string, 108,211,216,219
little-endian, 134,250
LOAD DATA INFILE (SQL), 1073
load-factor, 190
local
    identifier304
    loopback address, 1035
Locale (Java), 145
locale, a C++ header file, 008
lock, 979,984
long, 213,220
    double (C++), 213,222
longjmp (C), 386,386
look-and-feel, 791,792,793,794,797
loopback address, 1035,1053
low-level event, 845,858
macro (C++), 319
macros and messages, 844
main widget (Qt), 801
main_WindowWithMenu.cc, 889
makefile, 805,806,808,868,878,889,902,1043,1052
Makefile_ChatServer, 1052
Makefile_ClientSocket, 1043
Makefile_GTK_CrazyWindow, 878
Makefile_GTK_FirstWindow, 806
Makefile_GTK_RenderGraphics, 931
Makefile_GTK_Sketch, 935
Makefile_GTK_WindowWithMenu, 902
Makefile_Qt_CrazyWindow, 868
Makefile_Qt_WindowWithMenu, 889
malloc(), 098,110,796,1013
Manager.cc, 701
Manager.java, 707
Mandrake, 802
mangling, name (C++), 069,386
Map, a Java container class, 191
map, (C++), a container class149,151,178,208,567
map
    (C++)008
    (Java), 184,191,191
Map.Entry (Java), 194
MapHist.cc, 179
MapHist.java, 193
mapping threads to native threads, 964
mastering OO paradigm, 002
Math (Java), 056
max() (Java), 577
maximum size recommendation, 815
MediaTracker (AWT/Swing), 915,942
member
    access operator (C++)520
    function, 029
        overload definition (C++)501
    initialization syntax (C++), 036,293,658
    of a class, 032,037
memory
    a C++ header file529
    allocation, heap (C++)299,333
        heap (Java)335
        stack (C++)299
    deallocation (C++), 334
    leak (C++), 046,636
    segmentation fault, 299
Menu (AWT/Swing), 882
menu, 881
MenuBar (AWT/Swing), 882
MenuItem (AWT/Swing), 882
merge-sort, 137,197,315
merging lists (C++), 171
message (UML)
    in a sequence diagram597
    sequence number, 603
    status, 598
    to self, 598
meta (Qt)
    object code862
    object compilation, 859,862,1043
method, 030
    invocation, asynchronous601
        synchronous601
MFC, 791,844
MI (C++), 721
Microsoft Foundation Classes, 791,844
min_element (C++), 182
minimum
    capacity increment197
    size recommendation, 815
minimumSizeHint() (Qt), 837
MI_Utilities.h (C++), 752
Mixin.cc, 762
mixin class, 721,760,761
mixing C and C++, 488
mm.mysql, 1059
mm.mysql.Driver, 1070
moc (Qt), 1043
    compiler, 859,862
monitor, 979,984
monitoring
    image loading915
    of a port by a server, 1032
most-derived object (C++), 736
Motif, 791,791,792,792,794
MOUSE_CLICKED (AWT/Swing), 914
mouseClicked() (AWT/Swing), 914
mouseDoubleClickEvent() (Qt), 923
MOUSE_DRAGGED (AWT/Swing), 914
mouseDragged() (AWT/Swing), 914
MOUSE_ENTERED (AWT/Swing), 914
mouseEntered() (AWT/Swing), 914
MouseEvent
    (AWT/Swing)915
    (Qt), 923
mouse event, low-level, 923
MOUSE_EXITED (AWT/Swing), 914
mouseExited() (AWT/Swing), 914
MouseListener (AWT/Swing), 853,913
MouseMotionListener (AWT/Swing), 853,914
MOUSE_MOVED (AWT/Swing), 914
mouseMoved() (AWT/Swing), 914
mouseMoveEvent() (Qt), 919,923
MOUSE_PRESSED (AWT/Swing), 913
mousePressed() (AWT/Swing), 913
MOUSE_PRESSED (AWT/Swing), 914
mousePressed() (AWT/Swing), 914
mousePressEvent() (Qt), 919,923
MOUSE_RELEASED (AWT/Swing), 914
mouseReleased() (AWT/Swing), 914
mouseReleaseEvent() (Qt), 923
MuliJmp.cc, 387
MultiConstructors.java, 421
MultiCustomerAccount.c, 1015
MultiCustomerAccount.cc, 1022
MultiCustomerAccount.java, 985
multilevel return in C, 386
multimap, a C++ container class, 149,151
multiple
    inheritance (C++)721
    triggers (UML), 613
multiplicity, 592
    for attributes (UML), 595
MultiPolymorphism.java, 683
multiprocessing, 611,963
multiset, a C++ container class, 150
multithreading, 611
multithreading
    for animation990
    versus multiprocessing, 963
mutable, 134
mutating algorithm (C++), 182
mutex (POSIX)
    fast1011
    kind, 1010
    lock, 1010
    recursive, 1011
mutual exclusion for thread synchronization, 1010
MyDrawPanel.cc, 867
MyDrawPanel.h (Qt), 867
MySQL, 1058
    terminal monitor, 1063
Mysql++, 1075,1057
mysqladmin, 1058
mysqld, 1058
MyString, 506
MyString.cc, 514
MyTextPanel.cc, 865
MyTextPanel.h (Qt), 865
NAME, 938
name
    conflict749
    hiding (C++), 619,671
    lookup (C++), 619,671
        argument-dependent070
    lookup (Java), 671
    mangling (C++), 069,386,488
NameConflictDataMem.cc, 750
NameConflictMemFunc.cc, 747
nameless namespace, 361
NameLookup.cc, 671
NameLookup.java, 671
namespace (C++), 009,061
namespace (C++)
    alias304
    global, 386
    nesting, 067
    qualified name, 303
    scope, 303
    std, 022,386
    unnamed, 069
Namespace.cc, 062
Namespace2.cc, 065
Namespace3.cc, 065
Namespace4.cc, 066
namespace.h (Qt), 921
NamespaceNested.cc, 067
$NaN$, Not a Number, 222
narrowing
    conversion (Java)228
    primitive conversion (Java), 228
Narrowing.java, 231
NATIONAL CHARACTER(n) (SQL), 1061
native
    GUI toolkit792
    threads, 964
natural (Java)
    comparison method081
    ordering, 080,137,183,579
navigability (UML), 592
nested
    block304
    class, (C++)084
        (Java)084,089,093,571
    enumeration (C++), 089
    interface (Java), 084,089,093
    namespaces (C++), 067,304
    typedef (C++), 084
NestedInterface.java, 093
NestedClassAsType.java, 090
NestedClass.cc, 084
NestedClassDefsNotInline.cc, 085
NestedClass.java, 089
NestedTypes.cc, 088
network
    programming002
    -transparent computing, 790
new
    a C++ header file009
    (C++), 034,113,299,333,443
    (Java), 038,131,334
    (UML), 599
new[] (C++), 333,520
newConnection() (Qt), 1045
newline character, 215
next-element operation, 150
next() (Java), 1071,186,190
nextToken() (Java), 205,027
no-arg constructor
    (C++)623
    (Java), 047,312,313,669
NoArgMissing.cc, 419
Nocase (C++), 208
NoCopyOnReturn.cc, 359
NONE (AWT/Swing), 826
nonmutating algorithm (C++), 182
nonrealtime scheduling, 1004
nontype parameter, template declaration (C++), 563
NoPen (Qt), 921
NORTH (AWT/Swing), 810,827
NORTHEAST (AWT/Swing), 827
NORTHWEST (AWT/Swing), 827
noshowpoint, a stream manipulator (C++), 254
noskipws, a stream manipulator (C++), 255
NoSuchMethodError (Java), 408
notify() (Java), 984
notifyAll() (Java), 983,984
NOT NULL (SQL), 1062
nparams (GNOME/GTK+), 880
npos (C++), 120
null, 293
    pointer (C++), 298
NullPointerException (Java), 409
NumberFormatException (Java), 018
NUMERIC (SQL), 1061
numeric
    a C++ header file008
    escape, (C++)215
        (Java)218
    types (Java), 223
OBJECT tag (HTML), 947
Object
    (Java)984
    Management Group, 588
object
    cloning (Java)457
    deserialization (Java), 279
    destruction, (C++)054,441
        (Java)446
    finalization (Java), 055,446,447
    reference, 329
        (C++)329
        (Java)332
    serialization (Java), 279
ObjectIO.java, 280
ObjectInputStream (Java), 280
ObjectOutputStream (Java), 280
oct, a stream manipulator (C++), 253
octal
    escape215
    integer, literal221
    notation, 221
    number, 216
ODBC, 1059,1059
ofstream (C++), 021,022
OMG, 588
one-argument constructor (C++), 535
on-line Java documentation, 003
OO, 001,029
    design, 003
Open DataBase Connectivity, 1059
openmode (C++), 239
open source, 1058,795
operation (UML), 590,595
operation (UML)
    modifier596
    query, 596
operator, 211
operator
    '()' (C++)176
    arity, 498,504
    binary, 499
    equality (C++), 513
    for dereferencing (C++), 519
    for member access (C++), 520
    function (C++), 498
    insertion (C++), 009
    left bitwise shift (C), 009
    output (C++), 009
    overload definition, global (C++)498
        member function (C++)501
    overloading (C++), 053,497
        decrement operator529
        for derived class628
        increment operator529
        key points497
        {\tt <} for sorting540
    precedence, 497
    relational (C++), 513
    scope (C++), 089
    token, 498
    unary, 504
operator{\tt <<}() (C++), 628
ORDER BY (SQL), 1067,1069
ostream
    a C++ header file008
    a C++ output stream class, 237,237
ostream_iterator (C++), 206
ostringstream (C++), 257
ostrstream (C++), 257
out (C++), 239,239
OutOfMemoryError (Java), 408
OutputIterator (C++), 566
output
    operator (C++)009
    stream, classes (C++)237
        classes (Java)264
        manipulators (C++)252
        object (C++)008
        object (Java)013
        standard (C++)239
        standard (Java)265
OutputStream (Java), 259,989,1029
overload, resolution, 345
        (C++)369
        (Java)371
Overload.java, 372
Overload2.java, 382
OverloadBinaryGlobal.cc, 500
OverloadBinaryMemb.cc, 501
overloading, constructor, (C++)366
overloading
    constructor371
    function name, 345
        (C++)366,368
        (Java)371
    of operators (C++), 497
OverloadUnaryGlobal.cc, 504
OverloadUnaryMemb.cc, 505
OverrideAccessRestrict.cc, 653
OverrideAccessRestrict.java, 674
override definition for a function, 044
OverrideExceptionRestrict.cc, 654
OverrideReturnRestrict.cc, 652
overriding, a function, (C++)046
overriding
    a function047
    function, (C++)651
        (Java)670
        restrictions (C++)651
        restrictions (Java)673
pack() (AWT/Swing), 800,810,813,817,819,822,828,1000
package
    diagram (UML)604
    (Java), 003,013,055,057,071
        qualified name056
padding
    (GNOME/GTK+)838
    variable, ipadx (AWT/Swing)827
        ipady (AWT/Swing)827
paint() (AWT/Swing), 903,904,916
paintBorder() (AWT/Swing), 903
paintChildren() (AWT/Swing), 903
paintComponent() (AWT/Swing), 854,903,903,904,942
paintEvent() (Qt), 918,919,919,924
pair, 176
pallet, 798
pane (AWT/Swing)
    content797
    glass, 797,798,799
    layered, 797,798
    root, 797
Panel (AWT/Swing), 936,948
parameterization, 549
parameterized, class, (C++)550,555
parameterized
    class568
    function (C++), 550
    interface (Java), 573
    method (Java), 576
parameter list (UML), 596
PARAM tag (HTML), 939,954
parseInt() (Java), 017,018,939
pass argument to function, 345
pass argument to function
    by pointer (C++)345
    by reference (C++), 345
    by value, (C++)345
        of object reference (Java)345
pass by pointer
    class type argument (C++)351
    primitive type argument (C++), 347
pass by reference
    class type argument (C++)352
    primitive type argument (C++), 349
pass by value, class type argument, (C++)350
pass by value
    class type argument354
    of object reference (Java), 354
    primitive type argument, (C++)346
        (Java)353
PassClassTypeByPointer.cc, 351
PassClassTypeByRef.cc, 352
PassClassTypeByValue.cc, 350
PassClassTypeByValue.java, 354
passing arguments
    (C++)346
    (Java), 353
PassPrimByPointer.cc, 347
PassPrimByRef.cc, 349
PassPrimByValue.cc, 347
PassPrimByValue.java, 353
peek() (C++), 015,016,246
peer class (AWT/Swing), 793
peered component (AWT/Swing), 794
peerless component (AWT/Swing), 793
performance penalty, for polymorphic function (C++), 650
Photoshop, 795
pipe (C++), 023
PipedInputStream (Java), 259,988,990
PipedOutputStream (Java), 259,988,990,990
pixmap, 896
PlainDocument (AWT/Swing), 854
Point (AWT/Swing), 915
pointer
    to C++ function374
    to class member (C++), 463
    type (C++), 297
PointerDirectToMember.cc, 464
polyline, 924,932
Polymorph.cc, 045
polymorphic
    behavior638
    type (C++), 646,781
PolymorphicTypes.cc, 782
polymorphism, 003,029,031,682,728,918
    in simulated OO in C, 098
Polymorph.java, 048
pop_back() (C++), 154,174
pop() (C++), 174,174,175
pop_front() (C++), 168
port, 1027,1028,1028
    number, 1027,1028
Portable Operating System Interface, 1002
POSIX, 1002
POSIX
    thread attributes1003
    threads, 964
pos() (Qt), 924
precedence of an operator, 497
precision
    of output (C++)252
    of SQL data types, 1061
preemptive scheduling, 964
PretendGiant.cc, 520
previous() (Java), 186
PRIMARY KEY (SQL), 1061
    NOT NULL, 1060,1061
primitive type, 211
printf() (C), 006,007,098,796
print() (Java), 013,265
println() (Java), 013,265
PrintObj.cc, 053
PrintObj.java, 052
print representation (Java), 052
printStackTrace() (Java), 410
PrintStream (Java), 013,265
PrintWriter (Java), 265,1034
priority-preemptive scheduling, 964
priority_queue, a C++ container class, 149,151,176
PriorityQueueOps.cc, 177
priority of a thread, 964
private
    base (C++)618
    class derivation (C++), 664
    for access control, 034,038,071,595
PrivateConstructor.cc, 420
Promo.cc, 224
promotion, 224
property-string (UML), 595,596
protected
    base (C++)618
    class derivation (C++), 664
    for access control, 071,595
    inheritance, 665
prototype (C++), 346
pseudorandom, 460
pseudorandom numbers, 056
pthread_attr_init() (POSIX), 1003
pthread_attr_t (POSIX), 1002,1003
PTHREAD_CANCELED (POSIX), 1007
pthread_condattr_t (POSIX), 1013
pthread_cond_broadcast() (POSIX), 1014
pthread_cond_destroy() (POSIX), 1014
pthread_cond_init() (POSIX), 1013
pthread_cond_signal() (POSIX), 1014
pthread_cond_timedwait() (POSIX), 1014
pthread_cond_t (POSIX), 1013
pthread_cond_wait() (POSIX), 1014
PTHREAD_CREATE_DETACHED (POSIX), 1003
PTHREAD_CREATE_JOINABLE (POSIX), 1003
pthread_create() (POSIX), 1002
pthread_detach() (POSIX), 1004
pthread_exit() (POSIX), 1007
PTHREAD_EXPLICIT_SCHED (POSIX), 1004
PTHREAD_INHERIT_SCHED (POSIX), 1004
pthread_join() (POSIX), 1003,1006
pthread_mutexattr_getkind_np() (POSIX), 1011
pthread_mutexattr_setkind_np (POSIX), 1011
pthread_mutex_destroy() (POSIX), 1013
PTHREAD_MUTEX_FAST_NP (POSIX), 1010
pthread_mutex_lock() (POSIX), 1010,1014
PTHREAD_MUTEX_RECURSIVE_NP (POSIX), 1011
pthread_mutex_unlock() (POSIX), 1010,1014
PTHREAD_SCOPE_PROCESS (POSIX), 1004
PTHREAD_SCOPE_SYSTEM (POSIX), 1004
pthread_setschedparam() (POSIX), 1004
pthread_setschedpolicy() (POSIX), 1004
pthreads.h (POSIX), 1002
pthread_t (POSIX), 1002
public
    base (C++)618
    class, 011
    class derivation (C++), 617
    for access control, 034,038,071,595
pull-down menu, 881
pure virtual (C++), 074,075,643,660,727
push() (C++), 174,174,175
push_back() (C++), 153,154,174
push_front() (C++), 168
put() (C++), 021,247
putback() (C++), 246
putc() (C), 019,021
put position (C++), 240
qapplication.h (Qt), 831,832,834,836
QApplication (Qt), 795,795,801,859
    for default initializations, 795
QBrush (Qt), 920
QButton (Qt), 795
QColor (Qt), 921
QDialog (Qt), 795,836
qdialog.h (Qt), 832,836
QDns (Qt), 1038
QFileDialog (Qt), 795
QFrame (Qt), 795
QFtp (Qt), 1038
QGrid (Qt), 830,834
qgrid.h (Qt), 834
QGridLayout (Qt), 830,835,960
QGridLayoutTest.cc, 836
QGridTest.cc, 834
QGroupBox (Qt), 795
QHBox (Qt), 795,830
qhbox.h (Qt), 831
QHBoxLayout (Qt), 830
QHBoxLayoutTest.cc, 832
QHBoxTest.cc, 831
QLabel (Qt), 795
QLayout (Qt), 795,830
qlayout.h (Qt), 832,836,864
QLineEdit (Qt), 960
QMainWidget (Qt), 802
QMatrix (Qt), 919
QMouseEvent (Qt), 919
qmultilineedit.h (Qt), 865
QMultiLineEdit (Qt), 886
QMutex (Qt), 1019
QNetworkProtocol (Qt), 1038
Q_OBJECT (Qt), 862,870
QObject (Qt), 795,859,870
qpainter.h (Qt), 864
QPainter (Qt), 918,921
QPaintEvent (Qt), 918
QPoint (Qt), 924
QPopupMenu (Qt), 888
qpushbutton.h (Qt), 831,832,834,836
QPushButton (Qt), 804,836,960
QServerSocket (Qt), 1038,1044
qsizepolicy.h (Qt), 867
QSizePolicy (Qt), 866
QSocket (Qt), 795,1038,1038,1038
qsort()
    (C)116
    (C++), 199,375
Qsort.cc, 117
QStatusBar (Qt), 795
QString (Qt), 1038
Qt
    a class921
    a GUI toolkit, 790,791,793,795
QThread (Qt), 1018
QT_THREAD_SUPPORT (Qt), 1019
quantum, 967
queue
    a C++ container class175
    a C++ header file, 008
Query (Mysql++), 1075,1076
query() (Mysql++), 1076
QueueOps.cc, 175
quick-sort, 116,197,315
Q_UINT16 (Qt), 1038
QUIT (SQL), 1067
quit(), (Qt), 804,859
QUrlOperator (Qt), 1038
QVBox (Qt), 795,830,834
QVBoxLayout (Qt), 830,834
QWaitCondition (Qt), 1022
QWidget (Qt), 795,919,923
qwidget.h (Qt), 864
race condition, 1006,967
Random (Java), 460
random() (Java), 055,056,460
RandomAccessFile (Java), 259,266,273
RandomAccessIterator (C++), 566,567,568
range
    checking (Java)134
    violation (Java), 135
rangeCheck() (C++), 529
rbegin() (C++), 565
RCP, 1028
read() (Java), 017,018,024,027,884
Reader (Java), 259,1029,1033
read for binary I/O (C++), 247
ReadIntFromFile.java, 271
readInt() (Java), 271
readLine() (Java), 205,1029
readObject() (Java), 280
read-only collection (Java), 200
read-only iterator (Mysql++), 1077
readString(), 018
ReadStringFromFile.java, 273
readUTF() (Java), 273
readyRead() (Qt), 1038,1046
realizing a component (AWT/Swing), 797,1000
REAL (SQL), 1061
realtime scheduling, 1004
recursive mutex (POSIX), 1011
red-black tree, 191
reference, 038,329
    (C++), 292
reference
    (C++)330
    (Java), 332
        initialization333
    handler thread (Java), 965
Reference.cc, 338
Reference2.cc, 339
ReferenceClassType.cc, 331
reflexive association (UML), 593
registering
    a callback844
    a listener (AWT/Swing), 847
    image with tracker (AWT/Swing), 915
reinterpret_cast (C++), 234,781
relational
    database1057
    operator, 513
release() (C++), 525
reliable connection-based stream protocol, 1028
Remote Call Procedure, 1028
remove()
    (C++)170
    (Java), 183,186,190,206
removeAll()
    (AWT/Swing)943
    for emptying a Java container, 183
removeElement() (Java), 196,196
remove_if() (C++), 206
removeUpdate() (AWT/Swing), 854
rend() (C++), 565
RenderGraphics.c, 928
RenderGraphics.cc, 921
RenderGraphics.java, 905
rendering, 903
repaint()
    (AWT/Swing)1000
    (Qt), 919
repeated inheritance (C++), 729,751
RepeatInherit.cc, 755
replace()
    (C++)567
    (Java), 140
reserve() (C++), 157
reset(), 920
RESET_QUERY (SQL), 1076
resize() (C++), 124,153,157
resizing behavior, 825
responsibility (UML), 592
restart() (Java), 941
restrictions on overriding function
    (C++)651
    (Java), 673
Result (Mysql++), 1075,1076
ResultSetMetaData (Java), 1071
resurrecting unreferenced objects, 449
retrieval command (SQL), 1062
return-type (UML), 596
revalidate() (AWT/Swing), 943,1000
reverse() (C++), 567
reverse_iterator (C++), 568
rfind() (C++), 120
right_attach (GNOME/GTK+), 840
right bitwise shift operator, 016
rigid area (AWT/Swing), 815
rlogin, 1028
Robot.cc, 427
Robot.java, 434
role
    (UML)592
    -based class hierarchy, 768
    playing class, 721,768
RolePlayers.cc, 771
root pane (AWT/Swing), 797,797
rotate() (Qt), 920
rotating a shape, 910
RotatingRect.java, 911
rounding-modes for floating-point, 227
round
    -robin scheduling964
    -toward-zero mode, 227
RTTI (C++), 234,646,690,700,780,781
run()
    (Java)966
    (Qt), 1018
Runnable (Java), 969
runnable state, 967,970
running state, 970
RuntimeException (Java), 408
run-time type identification (C++), 234,646,690,700,780
safe_mysqld, 1058
SansSerif, 908
SCALE_DEFAULT (AWT/Swing), 916
SCALE_FAST (AWT/Swing), 916
scale() (Qt), 920
SCALE_REPLICATE (AWT/Swing), 916
SCALE_SMOOTH (AWT/Swing), 916,916
scaling an image, 916
scanf() (C), 015
SCHED_FIFO (POSIX), 1004
SCHED_OTHER (POSIX), 1004
schedparam (POSIX), 1004
schedpolicy (POSIX), 1004
SCHED_RR (POSIX), 1004
scheduling
    a thread970
    policy, 1004
    priority, 1004
schema, 1073
scientific, a stream manipulator (C++), 254
scope, 054,061,283
scope
    (C++)303
    (Java), 305
    block, (C++)303
        (Java)305
    file (C++), 303
    for thread scheduling contention (POSIX), 1004
    function (C++), 303
    function-prototype (C++), 303
    namespace (C++), 303
    of a global identifier (C++), 304
    operator (C++), 036,061,089,304,619
        for nested type089
ScopeTest.java, 306
Scrollable (AWT/Swing), 940,942
scrollbar, 873,940,942
search
    for array element (Java)315
    for character (Java), 139
    for substring (C++), 120
    for substring (Java), 139
second (C++), 179
security, applet, 936,956
seek() (Java), 266,267
seekp() (C++), 240
seekg() (C++), 240
SELECT (SQL), 1060,1062,1064
SelfRef.cc, 436
self-reference
    (C++)435
    (Java), 439
sequence, container, (C++)150,173,565
        (Java)183
sequence
    container173
    diagram (UML), 597
sequential I/O, 266
Serializable (Java), 075,076,274,279
serial version UID (Java), 279
server, 1027
    -based database, 1057
ServerSocket (Java), 1031
Set, a Java container class, 182,183,189
set
    a C++ container class180
    a C++ header file, 008
    functions (SQL), 1069
    (Java), 182,183,189
setBorder() (AWT/Swing), 810,813,819
setCoalesce() (Java), 941
setColor() (AWT/Swing), 905,908
setContentPane() (AWT/Swing), 798
setfill(), a stream manipulator (C++), 253
setHorizontalTextPosition() (AWT/Swing), 810,813,819
setInitialDelay() (Java), 941
setjmp (C), 386
setjmp.h (C), 386
setLayout() (AWT/Swing), 799
setLocation() (AWT/Swing), 797,810,813,817,819,822,828,937
setMainWidget() (Qt), 832,834,836
setMargin() (Qt), 831
setMatrix() (Qt), 919,920
setMaximumSize()
    (AWT/Swing)815
    (Qt), 833
setMinimumSize(), (AWT/Swing), 815
setMnemonic() (AWT/Swing), 850
SetOps.cc, 180
SetOps.java, 190
setPen() (Qt), 921
setprecision(), a stream manipulator (C++), 252
setPreferredSize() (AWT/Swing), 815
setPriority() (Java), 967
setSize() (AWT/Swing), 800,937
setSocket() (Qt), 1046
setSpacing() (Qt), 831
setToolTipText() (AWT/Swing), 849
setVerticalTextPosition() (AWT/Swing), 810,813,819,822
setVisible() (AWT/Swing), 797,810,813,817,819,822,828,1000
setw(), a stream manipulator (C++), 253
setWorldMatrix() (Qt), 920
shape rendering, 918
short, 213,220
short-circuit evaluation (C++), 543
SHOW (SQL), 1065
show()
    (AWT/Swing)797
    (Qt), 801,802,831,832,834,836
showbase, a stream manipulator (C++), 254
showDocument() (Java), 956
showpoint, a stream manipulator (C++), 254
shuffle, 150,166
shuffle() (Java), 316
side effect, 347
SIGNAL (Qt), 859
signal, 870
signal
    (C++)804
    emission, 844
    emitted by button, 808
signaling object, 1013
signal_name (GNOME/GTK+), 880
signals and slots (Qt), 844
SignalSlotLCD.cc, 860
signature, function, 369
signed
    char (C++)214
    int (C++), 213,221
Silly.cc, 376
Simple Mail Transfer Protocol, 1028
SimulatedOO.c, 098
simulated OO in C, 002,790,791
Singleton.cc, 417
singleton (Java), 200
Singleton.java, 416
size()
    (C++)180
    (Java), 190,190
sizeHint() (Qt), 833,836,837
sizeof, 006,007,098,117,125,125
sizePolicy() (Qt), 837,866
size_t (C++), 110,120
size_type (C++), 116,119,122
Sketch.c, 933
Sketch.cc, 924
sketching, free-form, 923,932
skipws, a stream manipulator (C++), 255
Skipws.cc, 256
sleep state, 964,970
SlideShowApplet.html, 946
SlideShowApplet (Java), 940
SlideShowApplet.java, 943
SLOT (Qt), 859
slot (Qt), 804,844,870,887
SMALLINT (SQL), 1061
SmallInt (C++), 529
SmallIntWithIncrDecr.cc, 531
smart pointer (C++), 519
SmartPtr.h, 527
SmartPtrInitial.cc, 523
SmartPtrWithOwnership.cc, 525
SMTP network service, 1028
society of objects, 001
Socket (Java), 1028,1029,1038
socket, 1027,1028,1038,1038,1038
    number, 1027,1028
SolidLine (Qt), 921
sort()
    (C++)692
    (Java), 055,055,137,137,145,185,186,205,315
    pointer types (C++), 542
    stable, 117
SortedMap, a Java container class, 184,191
SortedSet, a Java container class, 183
sort_heap() (C++), 567
SortPointerTypes.cc, 542
SortTiming.java, 055
SortWithFunctor.cc, 539
SortWithLessThan.cc, 540
SOUTH (AWT/Swing), 810,827
SOUTHEAST (AWT/Swing), 827
SOUTHWEST (AWT/Swing), 827
SpecialInt.cc, 437
SpecialInt.java, 440
specialization, 769
specification perspective (UML), 592
specificity, 369
splicing one list into another
    (C++)171
    (Java), 185,186
SQL, 1055,1057,1059
sstream, a C++ header file, 008,257
stable sorting, 117,197,315
Stack, a Java container class, 184
stack, 299
stack
    a C++ container class174
    a C++ header file, 008
    (Java), 184
stacking order, 842
StackOps.cc, 174
StackOverflowError (Java), 408
standard
    conversion225
    error stream, 239,021,023
    input stream, 239
    namespace (C++), 009
    output, 008
        stream023,239
StandardConvert.cc, 225
Standard Template Library (C++), 008,009
start()
    for applets (AWT/Swing)991
    for QThread (Qt), 1018
    for Thread (Java), 966
    for Timer (Java), 941
startsWith() (Java), 141
state
    diagram (UML)604
    of input stream object (C++), 023
    transition (UML), 606
state() (Qt), 1039
statechart diagram (UML), 588,606
    concurrent, 608
Statement (Java), 1070
static, 019,595,690
    class member, (C++)422
static
    class member430
    const (C++), 422
        initialization422
    destruction (C++), 429
    final (Java), 430,690
        initialization430
    for continuous storage (C++), 362
    for file scope (C++), 361
    initialization (C++), 429
    member, 081
        initialization (C++)423,423,426
        initialization (Java)433
    nested class (Java), 089,847
    result set (Mysql++), 1077
    variable (C++), 361
    binding (C++), 647
Static1.cc, 422
Static1.java, 430
Static2.cc, 423
Static2.java, 431
StaticBinding.cc, 647
static_cast (C++), 117,232,618,781
StaticStorage.cc, 362
status message in sequence diagram (UML), 598
stddef.h (C), 110
stderr, standard error stream (C), 019,021
stdexcept, a C++ header file, 008,009
stdin, standard input stream (C), 014
stdio.h, a C header file, 021
stdlib.h, a C header file, 020
std, standard namespace (C++), 009,022,386
stereotype (UML), 596
STL (C++), 008,009
stop()
    for applets (AWT/Swing)937
    for Timer (Java), 941
store() (Mysql++), 1076
storage allocation, String (Java), 132
strcat() (C), 110
strcmp() (C), 109,563
strcpy() (C), 098,110,507
stream, buffering, (C++)258
stream
    buffering264
    function (C++), 252
    hierarchy, (C++)237
        (Java)259
    manipulator (C++), 252,252
streambuf (C++), 258
    a header file, 008
strerror() (C), 1003
stretch (Qt), 833
String (Java), 018
String, (Java), 129
        storage allocation132
string
    (C)108
    (C++), 033,113
    (Java), 129
    a C++ header file, 008,009,113,116
    constant, 108
    constructor, (C++)507
        (Java)131
    joining of, (C)110
        (C++)111
        (Java)138
    literal, 108,211
    ::npos (C++), 120
    stream, 257
StringBuffer (Java), 038,129
StringCharIndexing.cc, 114
StringFind.cc, 121
StringFind.java, 140
string.h, a C header file, 107,109
StringIndexOutOfBoundException (Java), 134
StringInsert.java, 141
StringLiteralUniqueness.java, 131
StringSize.cc, 125
StringSizeOf.cc, 127
StringSort.java, 137
StringTokenizer (Java), 026,192,205
strlen() (C), 109,507
struct
    (C)098
    (C++), 336
        access privilege337
        tag336
StructInit.cc, 337
Structured Query Language, 1055,1057
StyledDocument (AWT/Swing), 854
subclass, 002,031
    (C++), 042
        copy assignment operator617
        copy constructor617
subclass
    (C++)617
    (Java), 047
subscript operator (C++), 150
substr() (C++), 122
substring() (Java), 141
superclass, 031
superclass
    (C++)042
    (Java), 047
super (Java), 047
super() (Java), 670
superstate (UML), 608
suppressing name mangling (C++), 386
swap() (C++), 129
Swap.cc, 356
Swap.java, 355
SwapWithPointer.cc, 357
Swing (Java), 790,791
SwingUtilities (AWT/Swing), 993,1000
switch, 305
sync() (C++), 258
SynchedFileIO.java, 981
SynchedSwaps.c, 1011
SynchedSwaps.cc, 1019
SynchedSwaps.java, 979
synchronization
    bar (UML)611
    (C++), 1019
    (Java), 979
    pthreads (POSIX), 1010
synchronized
    collection (Java)200
    container (Java), 185
synchronizedList() (Java), 200
synchronous method invocation, 601
System (Java), 013,056,957
system thread group (Java), 965
tab character, 215
TableLayoutTest.c, 841
TCP, 1028
TCP
    server socket1038
    socket, 1038
tellg() (C++), 240,248
tellp() (C++), 240
telnet, 1027,1053
    daemon, 1027
telnetd, 1027
template
    class547
    class (C++), 083
    declaration (C++), general syntax563
        nontype parameter563
        type parameter563
    parameter, 555
    parameter (C++), default value564
        list563
    specialization (C++), 560
TemplateX.cc, 083
templatization, 549
templatized
    class568
    function, 550
    program, 548
terminate() (C++), 393
TermIO.c, 014
TermIO.cc, 015
TermIO.java, 017
TestFilePosition2.cc, 241
TestFilePosition.cc, 240
Text, 1059
TextArea (AWT/Swing), 882,884
text string, drawing of, 919
TFTP, 1028
TFTP network service, 1028
this, for self-reference
    (C++)453
    (Java), 439
this() (Java), 421,669
Thread (Java), 1018,941,966,968
thread
    group965
    interference, 971
    priority, 942,964
    safety, 1000
    scheduling, first-in first-out1004
        nonrealtime1004
        priority-preemptive964
        round-robin1004,964
    state, blocked970
        born967,970
        dead970
        runnable967,970
        running970
        sleeping970
        waiting970
    synchronization, (C++)1019
        (Java)979
        (POSIX)1010
ThreadBasic.c, 1005
ThreadBasic.java, 966
ThreadBasicWithJoin.c, 1007
ThreadBasicWithJoin.java, 968
ThreadBasicWithRunnable.java, 969
ThreadGroup (Java), 965
Throwable (Java), 399
throw clause (C++), 389
throwing multiple exceptions, 404
throws clause (Java), 399
time order in a sequence diagram (UML), 601
Timer (Java), 940,943
timeslicing of threads, 964,967,972
TIME (SQL), 1061
    WITH TIME ZONE, 1061
TIMESTAMP (SQL), 1061
    WITH TIME ZONE, 1061
toArray() (Java), 183,201,316
token, 192,211
toolbar, 798,897
Toolkit (AWT/Swing), 794,915
top() (C++), 174
top_attach (GNOME/GTK+), 840
top-level
    containers796
    window, 796,804
toString() (Java), 052
tower of GUI API's, 792
transient (Java), 281
transition, statechart diagram (UML), 606
transitivity, 605
translate()
    (AWT/Swing)905
    (Qt), 920
translating Unicode into UTF-8, 270
Transmission Control Protocol, 1028
transparent pixels, 793
TreeMap, a Java container class, 184,191
TreeSet, a Java container class, 189
trigger (UML), 612
trimToSize() (Java), 197
Trivial File Transfer Protocol, 1028
trunc (C++), 239
try--catch
    (C++)389
    (Java), 018,024,401
TryCatch.cc, 390
TryCatch.java, 400
two's complement representation, 230,236
type, 114
    conversion, explicit223
        explicit (C++)232,234
        explicit (Java)234
        for primitive types223
        implicit223
        implicit (C++)224,232
        implicit (Java)228
typedef (C++), 061,065,066,067,069,084,088,113,169,237
typeid() (C++), 786
typeinfo, a C++ header file, 008,009
type
    inheritance (C++)665
    parameter, 555
        constraining of (Java)579
         template declaration of (C++)563
typename (C++), 563
UDP, 1028
ugetc() (C), 014
UML, 003,588
unary operator, 504
unchecked exception (Java), 399,408
unexpected() (C++), 393
unget() (C++), 246
ungetc() (C), 015
Unicode, 134,136,213,218,237,1029
Unified Modeling Language, 003,588
UNIQUE (SQL), 1062
unique() (C++), 171
Unix, 791,791,792,794,795
    emulation in Windows, 012
UnknownHostException (Java), 1029
unmodifiableList() (Java), 200
unnamed namespace (C++), 069,304
unsigned
    char (C++)214
    int, 110,116
    int (C++), 213
    long int, 110
UnsupportedEncodingException (Java), 134
UnsynchedFileIO.java, 976
UnsynchedSwaps.c, 1008
UnsynchedSwaps.java, 972
upcasting (C++), 628,629
UPDATE (SQL), 1060,1062,1066
update()
    (AWT/Swing)904
    (Qt), 919
URL, 939,943,953,1028,1038
    (Java), 956
usage patterns for exception handling
    (C++)391
    (Java), 402
US-ASCII, 133
USE (SQL), 1063
use case (UML), 588,608
use case (UML)
    diagram588
    extend relationship, 590
    generalization, 590
    include relationship, 590
User1.cc, 035
User2.cc, 035
User3.cc, 036
UserConv.cc, 534
UserConvConstructor.cc, 535
UserConvExplicit.cc, 536
User Datagram Protocol, 1028
User.java, 039
using (C++)
    declaration303
    directive, 009,022,061,064,303
UTF-8, 133
    encoding, 270
UTF-16, 133
UTF-16BE, 133
UTF-16LE, 133,134
utility, a C++ header file, 008,176
valarray
    a C++ container class152
    a C++ header file, 008
VARCHAR(n) (SQL), 1061
variable, default initialization, 283
        (C++)286
        (Java)293
Vector\, a Java container class, 184,194
vector
    (C++)567
    (Java), 184,194
    a C++ container class, 148,150,152,174
    a C++ header file, 008,156
    initialization (C++), 157,166
    migration, 149
VectorBasic.cc, 155
VectorForClassType.cc, 164
VectorFrontBackResize.cc, 157
VectorInitArray.cc, 167
VectorInsertEraseSort.cc, 160
VectorListOps.java, 196
VectorOps.java, 195
VERTICAL (AWT/Swing), 826
viewport view, 816
virtual
    base (C++)752
    destructor (C++), 655,727,781
    function (C++), 044,617,638,651,918
    pure (C++), 074,075,643,727
    table (C++), 648
        pointer649
    terminal, 791
VirtualBase.cc, 732
VirtualBaseAssign.cc, 740
VirtualBaseCopyConstruct.cc, 737
VirtualDestructor.cc, 655
VirtualPrint1.cc, 641
VirtualPrint2.cc, 644
visibility, 043,047,595
visibility
    private595
    protected, 595
    public, 595
visual representation, 587
VSPACE, 938
vtbl (C++), 648
vtpr (C++), 649
VtprConcealed.cc, 649
wait
    list984
    state, 964,970
wait()
    (C++)1018
    (Java), 983,984
waitForAll() (AWT/Swing), 915
waitForID() (AWT/Swing), 915
wait--notify (Java), 983
wait--signal (POSIX), 1014
wait--wake (Qt), 1022
wakeAll() (Qt), 1022
wakeOne() (Qt), 1022
weightx (AWT/Swing), 826
weighty (AWT/Swing), 826
WEST (AWT/Swing), 810,827
WHERE (SQL), 1062
white-space characters, 015,016,212
Widening.java, 228
widening primitive conversion (Java), 228
widening type conversion (Java), 371
widget, 795
Win32, 793,793
    API, 791,792
WINDOW_ACTIVATED (AWT/Swing), 852
WindowAdapter (AWT/Swing), 680,850
WINDOW_CLOSED (AWT/Swing), 852
windowClosing() (AWT/Swing), 850
WINDOW_CLOSING (AWT/Swing), 852
windowClosing() (AWT/Swing), 852
WINDOW_DEACTIVATED (AWT/Swing), 852
WINDOW_DEICONIFIED (AWT/Swing), 852
WindowEvent (AWT/Swing), 852
WINDOW_ICONIFIED (AWT/Swing), 852
WindowListener (AWT/Swing), 847
window manager, 842
WINDOW_OPENED (AWT/Swing), 852
Windows platform, 794
WindowWithButtons2.java, 850
WindowWithButtons.java, 848
WindowWithHelloButton.c, 871
WindowWithMenu.c, 898
WindowWithMenu.cc, 889
WindowWithMenu.h (Qt), 889
WindowWithMenu.java, 884
wistream (C++), 258
wostream (C++), 258
wrapper class (Java), 185,194
WriteBinaryIntsToFile.cc, 250
writeBytes() (Java), 269
writeChars() (Java), 264,270
writeDouble() (Java), 264
writeFloat() (Java), 264
write for binary I/O (C++), 247
writeInt() (Java), 264
WriteIntToFile.java, 261
write() (Java), 024,262,263,269
writeObject() (Java), 280
Writer (Java), 259,1029,1033
WriteStringToFile.java, 267
writeUTF() (Java), 270
wxWindows (C++), 791
Xlib, 791,792,792
Xt, 791
X window system, 790

Last updated May 18, 2013

Valid HTML 4.01 Transitional Valid CSS!