主页 详情

《Thinking in C++ Volume 2:Practical Programming,[美]埃克尔(Eckel,B.)等著,机械工业出版社,2004年

【书名】:《Thinking in C++ Volume 2:Practical Programming,[美]埃克尔(Eckel,B.)等著,机械工业出版社,2004年02月第1版》
【作者】:
【出版社】:
【时间】:
【页数】:806
【ISBN】:
【SS码】:40041117

最新查询

内容简介

Introduction

Goals

Chapters

Exercises

Exercise solutions

Source code

Compilers

Language standards

Seminars, CD-ROMs & consulting

Errors

About the cover

Acknowledgements

Ⅰ:Building Stable Systems

1:Exception Handling

Traditional error handling

Throwing an exception

Catching an exception

The try block

Exception handlers

Termination and resumption

Exception matching

Catching any exception

Rethrowing an exception

Uncaught exceptions

Cleaning up

Resource management

Making everything an object

auto_ptr

Function-level try blocks

Standard exceptions

Exception specifications

Better exception specifications?

Exception specifications and inheritance

When not to use exception specifications

Exception safety

Programming with exceptions

When to avoid exceptions

Typical uses of exceptions

Overhead

Summary

Exercises

2:Defensive Programming

Assertions

A simple unit test framework

Automated testing

The TestSuite Framework

Test suites

The test framework code

Debugging techniques

Trace macros

Trace file

Finding memory leaks

Summary

Exercises

Ⅱ:The Standard C++ Library

3:Strings in Depth

What's in a string?

Creating and initializing C+ + strings

Operating on strings

Appending, inserting, and concatenating strings

Replacing string characters

Concatenation using nonmember overloaded operators

Searching in strings

Finding in reverse

Finding first/last of a set of characters

Removing characters from strings

Comparing strings

Strings and character traits

A string application

Summary

Exercises

4:Iostreams

Why iostreams?

Iostreams to the rescue

Inserters and extractors

Common usage

Line-oriented input

Handling stream errors

File iostreams

A File-Processing Example

Open modes

Iostream buffering

Seeking in iostreams

String iostreams

Input string streams

Output string streams

Output stream formatting

Format flags

Format fields

Width, fill, and precision

An exhaustive example

Manipulators

Manipulators with arguments

Creating manipulators

Effectors

Iostream examples

Maintaining class library source code

Detecting compiler errors

A simple data logger

Internationalization

Wide Streams

Locales

Summary

Exercises

5:Templates in Depth

Template parameters

Non-type template parameters

Default template arguments

Template template parameters

The typename keyword

Using the template keyword as a hint

Member Templates

Function template issues

Type deduction of function template arguments

Function template overloading

Taking the address of a generated function template

Applying a function to an STL sequence

Partial ordering of function templates

Template specialization

Explicit specialization

Partial Specialization

A practical example

Preventing template code bloat

Name lookup issues

Names in templates

Templates and friends

Template programming idioms

Traits

Policies

The curiously recurring template pattern

Template metaprogramming

Compile-time programming

Expression templates

Template compilation models

The inclusion model

Explicit instantiation

The separation model

Summary

Exercises

6:Generic Algorithms

A first look

Predicates

Stream iterators

Algorithm complexity

Function objects

Classification of function objects

Automatic creation of function objects

Adaptable function objects

More function object examples

Function pointer adaptors

Writing your own function object adaptors

A catalog of STL algorithms

Support tools for example creation

Filling and generating

Counting

Manipulating sequences

Searching and replacing

Comparing ranges

Removing elements

Sorting and operations on sorted ranges

Heap operations

Applying an operation to each element in a range

Numeric algorithms

General utilities

Creating your own STL-style algorithms

Summary

Exercises

7: Generic Containers

Containers and iterators

STL reference documentation

A first look

Containers of strings

STL containers

A plethora of iterators

Iterators in reversible containers

Iterator categories

Predefined iterators

The basic sequences: vector, list, deque

Basic sequence operations

vector

deque

Converting between sequences

Checked random-access

list

Swapping sequences

set

A completely reusable tokenizer

stack

queue

Priority queues

Holding bits

bitset<n>

vector<bool>

Associative containers

Generators and fillers for associative containers

The magic of maps

Multimaps and duplicate keys

Multisets

Combining STL containers

Cleaning up containers of pointers

Creating your own containers

STL extensions

Non-STL containers

Summary

Exercises

Ⅲ: Special Topics

8:Runtime Type Identification

Runtime casts

The typeid operator

Casting to intermediate levels

void pointers

Using RTTI with templates

Multiple inheritance

Sensible uses for RTTI

A trash recycler

Mechanism and overhead of RTTI

Summary

Exercises

9: Multiple Inheritance

Perspective

Interface inheritance

Implementation inheritance

Duplicate subobjects

Virtual base classes

Name lookup issues

Avoiding MI

Extending an interface

Summary

Exercises

10: Design Patterns

The pattern concept

Prefer composition to inheritance

Classifying patterns

Features, idioms,patterns

Simplifying Idioms

Messenger

Collecting Parameter

Singleton

Variations on Singleton

Command: choosing the operation

Decoupling event handling with Command

Object decoupling

Proxy: fronting for another object

State: changing object behavior

Adapter

Template Method

Strategy: choosing the algorithm at runtime

Chain of Responsibility: trying a sequence of strategies

Factories: encapsulating object creation

Polymorphic factories

Abstract factories

Virtual constructors

Builder: creating complex objects

Observer

The "inner class" idiom

The observer example

Multiple dispatching

Multiple dispatching with Visitor

Summary

Exercises

11: Concurrency

Motivation

Concurrency in C++

Installing ZThreads

Defining Tasks

Using Threads

Creating responsive user interfaces

Simplifying with Executors

Yielding

Sleeping

Priority

Sharing limited resources

Ensuring the existence of objects

Improperly accessing resources

Controlling access

Simplified coding with Guards

Thread local storage

Terminating tasks

Preventing iostream collision

The ornamental garden

Terminating when blocked

Interruption

Cooperation between threads

Wait and signal

Producer-consumer relationships

Solving threading problems with queues

Broadcast

Deadlock

Summary

Exercises

A:Recommended Reading

General C++

Bruce's books

Chuck's books

In-depth C++

Design Patterns

B: Etc

Index


书查询(www.shuchaxun.com)本网页唯一编码:
1973cb7d5409e7356dcecda899b6ab7d#70fec67bddf5dffd289f113ed02c5e01#25997952#40041117.pdf