图书介绍

Thinking in C++ Volume 2:Practical Programmingpdf电子书版本下载

Thinking in C++ Volume 2:Practical Programming
  • [美]埃克尔(Eckel 著
  • 出版社: 机械工业出版社
  • ISBN:
  • 出版时间:2004
  • 标注页数:806页
  • 文件大小:23MB
  • 文件页数:839页
  • 主题词:

PDF下载


点此进入-本书在线PDF格式电子书下载【推荐-云解压-方便快捷】直接下载PDF格式图书。移动端-PC端通用
种子下载[BT下载速度快] 温馨提示:(请使用BT下载软件FDM进行下载)软件下载地址页 直链下载[便捷但速度慢]   [在线试读本书]   [在线获取解压码]

下载说明

Thinking in C++ Volume 2:Practical ProgrammingPDF格式电子书版下载

下载的文件为RAR压缩包。需要使用解压软件进行解压得到PDF格式图书。

建议使用BT下载工具Free Download Manager进行下载,简称FDM(免费,没有广告,支持多平台)。本站资源全部打包为BT种子。所以需要使用专业的BT下载软件进行下载。如 BitComet qBittorrent uTorrent等BT下载工具。迅雷目前由于本站不是热门资源。不推荐使用!后期资源热门了。安装了迅雷也可以迅雷进行下载!

(文件页数 要大于 标注页数,上中下等多册电子书除外)

注意:本站所有压缩包均有解压码: 点击下载压缩包解压工具

图书目录

Introduction 1

Goals 1

Chapters 2

Exercises 5

Exercise solutions 5

Source code 5

Compilers 7

Language standards 9

Seminars, CD-ROMs & consulting 9

Errors 10

About the cover 10

Acknowledgements 10

Ⅰ:Building Stable Systems 13

1:Exception Handling 15

Traditional error handling 16

Throwing an exception 18

Catching an exception 20

The try block 20

Exception handlers 20

Termination and resumption 22

Exception matching 23

Catching any exception 25

Rethrowing an exception 26

Uncaught exceptions 26

Cleaning up 28

Resource management 30

Making everything an object 32

auto_ptr 35

Function-level try blocks 36

Standard exceptions 38

Exception specifications 40

Better exception specifications? 45

Exception specifications and inheritance 46

When not to use exception specifications 47

Exception safety 48

Programming with exceptions 52

When to avoid exceptions 52

Typical uses of exceptions 54

Overhead 58

Summary 60

Exercises 61

2:Defensive Programming 63

Assertions 66

A simple unit test framework 70

Automated testing 71

The TestSuite Framework 75

Test suites 79

The test framework code 81

Debugging techniques 87

Trace macros 87

Trace file 88

Finding memory leaks 90

Summary 96

Exercises 97

Ⅱ:The Standard C++ Library 101

3:Strings in Depth 103

What's in a string? 104

Creating and initializing C+ + strings 106

Operating on strings 109

Appending, inserting, and concatenating strings 110

Replacing string characters 112

Concatenation using nonmember overloaded operators 117

Searching in strings 117

Finding in reverse 123

Finding first/last of a set of characters 124

Removing characters from strings 126

Comparing strings 129

Strings and character traits 134

A string application 140

Summary 145

Exercises 146

4:Iostreams 151

Why iostreams? 151

Iostreams to the rescue 156

Inserters and extractors 156

Common usage 161

Line-oriented input 164

Handling stream errors 165

File iostreams 168

A File-Processing Example 169

Open modes 171

Iostream buffering 173

Seeking in iostreams 175

String iostreams 179

Input string streams 180

Output string streams 182

Output stream formatting 186

Format flags 186

Format fields 188

Width, fill, and precision 190

An exhaustive example 191

Manipulators 194

Manipulators with arguments 196

Creating manipulators 199

Effectors 201

Iostream examples 203

Maintaining class library source code 204

Detecting compiler errors 208

A simple data logger 211

Internationalization 216

Wide Streams 216

Locales 218

Summary 221

Exercises 222

5:Templates in Depth 227

Template parameters 227

Non-type template parameters 228

Default template arguments 230

Template template parameters 232

The typename keyword 238

Using the template keyword as a hint 240

Member Templates 242

Function template issues 245

Type deduction of function template arguments 245

Function template overloading 249

Taking the address of a generated function template 251

Applying a function to an STL sequence 255

Partial ordering of function templates 259

Template specialization 260

Explicit specialization 261

Partial Specialization 263

A practical example 265

Preventing template code bloat 268

Name lookup issues 273

Names in templates 273

Templates and friends 279

Template programming idioms 285

Traits 285

Policies 291

The curiously recurring template pattern 294

Template metaprogramming 297

Compile-time programming 298

Expression templates 308

Template compilation models 315

The inclusion model 315

Explicit instantiation 316

The separation model 319

Summary 320

Exercises 321

6:Generic Algorithms 325

A first look 325

Predicates 329

Stream iterators 331

Algorithm complexity 333

Function objects 335

Classification of function objects 336

Automatic creation of function objects 338

Adaptable function objects 341

More function object examples 343

Function pointer adaptors 351

Writing your own function object adaptors 358

A catalog of STL algorithms 362

Support tools for example creation 365

Filling and generating 368

Counting 370

Manipulating sequences 372

Searching and replacing 377

Comparing ranges 385

Removing elements 389

Sorting and operations on sorted ranges 393

Heap operations 403

Applying an operation to each element in a range 405

Numeric algorithms 413

General utilities 417

Creating your own STL-style algorithms 419

Summary 420

Exercises 421

7: Generic Containers 429

Containers and iterators 429

STL reference documentation 431

A first look 432

Containers of strings 438

STL containers 440

A plethora of iterators 442

Iterators in reversible containers 445

Iterator categories 446

Predefined iterators 448

The basic sequences: vector, list, deque 454

Basic sequence operations 454

vector 457

deque 465

Converting between sequences 467

Checked random-access 470

list 471

Swapping sequences 477

set 479

A completely reusable tokenizer 482

stack 487

queue 491

Priority queues 496

Holding bits 506

bitset<n> 507

vector<bool> 511

Associative containers 513

Generators and fillers for associative containers 518

The magic of maps 521

Multimaps and duplicate keys 523

Multisets 527

Combining STL containers 530

Cleaning up containers of pointers 534

Creating your own containers 536

STL extensions 538

Non-STL containers 540

Summary 546

Exercises 546

Ⅲ: Special Topics 549

8:Runtime Type Identification 551

Runtime casts 551

The typeid operator 557

Casting to intermediate levels 560

void pointers 561

Using RTTI with templates 562

Multiple inheritance 563

Sensible uses for RTTI 564

A trash recycler 565

Mechanism and overhead of RTTI 570

Summary 570

Exercises 571

9: Multiple Inheritance 573

Perspective 573

Interface inheritance 575

Implementation inheritance 579

Duplicate subobjects 585

Virtual base classes 589

Name lookup issues 599

Avoiding MI 603

Extending an interface 603

Summary 608

Exercises 609

10: Design Patterns 613

The pattern concept 613

Prefer composition to inheritance 615

Classifying patterns 615

Features, idioms,patterns 616

Simplifying Idioms 617

Messenger 617

Collecting Parameter 618

Singleton 619

Variations on Singleton 621

Command: choosing the operation 626

Decoupling event handling with Command 628

Object decoupling 631

Proxy: fronting for another object 632

State: changing object behavior 634

Adapter 636

Template Method 639

Strategy: choosing the algorithm at runtime 640

Chain of Responsibility: trying a sequence of strategies 642

Factories: encapsulating object creation 645

Polymorphic factories 647

Abstract factories 651

Virtual constructors 654

Builder: creating complex objects 660

Observer 667

The "inner class" idiom 671

The observer example 674

Multiple dispatching 679

Multiple dispatching with Visitor 683

Summary 687

Exercises 688

11: Concurrency 691

Motivation 692

Concurrency in C++ 694

Installing ZThreads 695

Defining Tasks 696

Using Threads 698

Creating responsive user interfaces 700

Simplifying with Executors 702

Yielding 706

Sleeping 707

Priority 709

Sharing limited resources 711

Ensuring the existence of objects 711

Improperly accessing resources 715

Controlling access 719

Simplified coding with Guards 721

Thread local storage 724

Terminating tasks 727

Preventing iostream collision 727

The ornamental garden 728

Terminating when blocked 733

Interruption 735

Cooperation between threads 741

Wait and signal 742

Producer-consumer relationships 747

Solving threading problems with queues 750

Broadcast 757

Deadlock 764

Summary 770

Exercises 773

A:Recommended Reading 777

General C++ 777

Bruce's books 777

Chuck's books 779

In-depth C++ 779

Design Patterns 781

B: Etc 783

Index 791

精品推荐