HomeContentsPreviousNextIndex

C++ Programming Guide Sun Microsystems

Contents

 Preface

1.  Introduction

1.1 The C++ Language
1.1.1 Data Abstraction
1.1.2 Object-Oriented Features
1.1.3 Type Checking
1.1.4 Classes and Data Abstraction
1.1.5 Compatibility With C

2.  Program Organization

2.1 Header Files
2.1.1 Language-Adaptable Header Files
2.1.2 Idempotent Header Files
2.1.3 Self-Contained Header Files
2.1.4 Unnecessary Header File Inclusion
2.2 Inline Function Definitions
2.2.1 Function Definitions Inline
2.2.2 Function Definitions Included
2.3 Template Definitions
2.3.1 Template Definitions Included
2.3.2 Template Definitions Separate

3.  Pragmas

3.1 Pragma Forms
3.2 Pragma Reference
3.2.1 #pragma align
3.2.2 #pragma init
3.2.3 #pragma fini
3.2.4 #pragma ident
3.2.5 #pragma pack(n)
3.2.6 #pragma unknown_control_flow
3.2.7 #pragma weak

4.  Templates

4.1 Function Templates
4.1.1 Function Template Declaration
4.1.2 Function Template Definition
4.1.3 Function Template Use
4.2 Class Templates
4.2.1 Class Template Declaration
4.2.2 Class Template Definition
4.2.3 Class Template Member Definitions
4.2.4 Class Template Use
4.3 Template Instantiation
4.3.1 Implicit Template Instantiation
4.3.2 Whole-Class Instantiation
4.3.3 Explicit Template Instantiation
4.4 Template Composition
4.5 Default Template Parameters
4.6 Template Specialization
4.6.1 Template Specialization Declaration
4.6.2 Template Specialization Definition
4.6.3 Template Specialization Use and Instantiation
4.6.4 Partial Specialization
4.7 Template Problem Areas
4.7.1 Nonlocal Name Resolution and Instantiation
4.7.2 Local Types as Template Arguments
4.7.3 Friend Declarations of Template Functions
4.7.4 Using Qualified Names Within Template Definitions
4.7.5 Nesting Template Declarations

5.  Exception Handling

5.1 Understanding Exception Handling
5.2 Using Exception Handling Keywords
5.2.1 try
5.2.2 catch
5.2.3 throw
5.3 Implementing Exception Handlers
5.3.1 Synchronous Exception Handling
5.3.2 Asynchronous Exception Handling
5.4 Managing Flow of Control
5.4.1 Branching Into and Out of try Blocks and Handlers
5.4.2 Nesting of Exceptions
5.4.3 Specifying Exceptions to Be Thrown
5.5 Specifying Runtime Errors
5.6 Modifying the terminate() and unexpected() Functions
5.6.1 set_terminate()
5.6.2 set_unexpected()
5.7 Calling the uncaught_exception() Function
5.8 Matching Exceptions With Handlers
5.9 Checking Access Control in Exceptions
5.10 Enclosing Functions in try Blocks
5.11 Disabling Exceptions
5.12 Using Runtime Functions and Predefined Exceptions
5.13 Mixing Exceptions With Signals and Setjmp/Longjmp
5.14 Building Shared Libraries That Have Exceptions

6.  Runtime Type Identification

6.1 Static and Dynamic Types
6.2 RTTI Options
6.3 typeid Operator
6.4 type_info Class

7.  Cast Operations

7.1 New Cast Operations
7.2 const_cast
7.3 reinterpret_cast
7.4 static_cast
7.5 Dynamic Casts
7.5.1 Casting Up the Hierarchy
7.5.2 Casting to void*
7.5.3 Casting Down or Across the Hierarchy

8.  Performance

8.1 Avoiding Temporary Objects
8.2 Using Inline Functions
8.3 Using Default Operators
8.4 Using Value Classes
8.4.1 Choosing to Pass Classes Directly
8.4.2 Passing Classes Directly on Various Processors
8.5 Cache Member Variables

9.  Multithreaded Programs

9.1 Building Multithreaded Programs
9.1.1 Indicating Multithreaded Compilation
9.1.2 Using C++ Support Libraries With Threads and Signals
9.2 Using Exceptions in a Multithreaded Program
9.3 Sharing C++ Standard Library Objects Between Threads

 Index


Sun Microsystems, Inc.
Copyright information. All rights reserved.
Feedback
Library   |   Contents   |   Previous   |   Next   |   Index