当前位置:首页 > 其他书籍
C++ how to program
C++ how to program

C++ how to programPDF电子书下载

其他书籍

  • 电子书积分:32 积分如何计算积分?
  • 作 者:Fourth Edition = C++大学教程(第四版)(英文版)
  • 出 版 社:Publishing House of Electronics Industry
  • 出版年份:2005
  • ISBN:7121017598
  • 页数:1342 页
图书介绍:本书的作者Deitel是美国编程教材方面的名家,他的作品繁多,并且多为美国各著名大学的指定教材。本书是一本C++编程方面的优秀教程,全面介绍了过程式编程与面向对象编程的原理与方法,细致地分析了各种性能问题、可移植性问题以及可能出错的情况。作者通过大量的示例程序,重点突出了利用UML进行面向对象的设计,引入了使用CGI的Web应用开发,并且帮助学生创建真实世界的C++应用程序。本书无论从广度和深度上来说都非常全面,并且从基础概念讲起,同样适合没有编程经验的读者学习。通过可以实际使用的完整例子,可以使读者潜移默化地掌握概念。
《C++ how to program》目录

1 Introduction to Computers and C++ Programming 1

1.1 Introduction 2

1.2 What is a Computer? 4

1.3 Computer Organization 5

1.4 Evolution of Operating Systems 6

1.5 Personal Computing,Distributed Computing and Client/Server Computing 7

1.6 Machine Languages,Assembly Languages,and High-level Languages 7

1.7 History of C and C++ 8

1.8 C++ Standard Library 10

1.9 Java 11

1.10 Visual Basic,Visual C++ and C 11

1.11 Other High-level Languages 13

1.12 Structured Programming 13

1.13 The Key Software Trend:Object Technology 14

1.14 Basics of a Typical C++ Environment 15

1.15 Hardware Trends 17

1.16 History of the Internet 18

1.17 History of the World Wide Web 19

1.18 World Wide Web Consortium (W3C) 20

1.19 General Notes About C++ and This Book 20

1.20 Introduction to C++ Programming 21

1.21 A Simple Program:Printing a Line of Text 21

1.22 Another Simple Program:Adding Two Integers 26

1.23 Memory Concepts 30

1.24 Arithmetic 31

1.25 Decision Making:Equality and Relational Operators 34

1.26 Thinking About Objects:Introduction to Object Technology and the Unified Modeling Language 40

1.27 Tour of the Book 44

2 Control Structures 70

2.1 Introduction 71

2.2 Algorithms 72

2.3 Pseudocode 72

2.4 Control Structures 73

2.5 if Selection Structure 76

2.6 if/else Selection Structure 77

2.7 while Repetition Structure 81

2.8 Formulating Algorithms:Case Study 1 (Counter-Controlled Repetition) 83

2.9 Formulating Algorithms with Top-Down,Stepwise Refinement:Case Study 2 (Sentinel-Controlled Repetition) 86

2.10 Formulating Algorithms with Top-Down,Stepwise Refinement:Case Study 3 (Nested Control Structures) 94

2.11 Assignment Operators 98

2.12 Increment and Decrement Operators 99

2.13 Essentials of Counter-Controlled Repetition 102

2.14 for Repetition Structure 104

2.15 Examples Using the for Structure 109

2.16 switch Multiple-Selection Structure 113

2.17 do/while Repetition Structure 120

2.18 break and continue Statements 122

2.19 Logical Operators 124

2.20 Confusing Equality (==) and Assignment (=) Operators 127

2.21 Structured-Programming Summary 128

2.22 [Optional Case Study] Thinking About Objects:Identifying a System’s Classes from a Problem Statement 133

3 Functions 169

3.1 Introduction 170

3.2 Program Components in C++ 170

3.3 Math Library Functions 171

3.4 Functions 173

3.5 Function Definitions 174

3.6 Function Prototypes 178

3.7 Header Files 180

3.8 Random Number Generation 182

3.9 Example:Game of Chance and Introducing enum 188

3.10 Storage Classes 192

3.11 Scope Rules 195

3.12 Recursion 198

3.13 Example Using Recursion:Fibonacci Series 202

3.14 Recursion vs.Iteration 206

3.15 Functions with Empty Parameter Lists 208

3.16 Inline Functions 209

3.17 References and Reference Parameters 211

3.18 Default Arguments 215

3.19 Unary Scope Resolution Operator 217

3.20 Function Overloading 219

3.21 Function Templates 222

3.22 [Optional Case Study] Thinking About Objects:Identifying a Class’s Attributes 225

4 Arrays 252

4.1 Introduction 253

4.2 Arrays 253

4.3 Declaring Arrays 255

4.4 Examples Using Arrays 256

4.5 Passing Arrays to Functions 272

4.6 Sorting Arrays 276

4.7 Case Study:Computing Mean,Median and Mode Using Arrays 278

4.8 Searching Arrays:Linear Search and Binary Search 283

4.9 Multiple-Subscripted Arrays 289

4.10 [Optional Case Study] Thinking About Objects:Identifying the Operations of a Class 296

5 Pointers and Strings 319

5.1 Introduction 320

5.2 Pointer Variable Declarations and Initialization 320

5.3 Pointer Operators 322

5.4 Calling Functions by Reference 325

5.5 Using const with Pointers 329

5.6 Bubble Sort Using Pass-by-Reference 336

5.7 Pointer Expressions and Pointer Arithmetic 341

5.8 Relationship Between Pointers and Arrays 344

5.9 Arrays of Pointers 349

5.10 Case Study:Card Shuffling and Dealing Simulation 350

5.11 Function Pointers 355

5.12 Introduction to Character and String Processing 360

5.12.1 Fundamentals of Characters and Strings 360

5.12.2 String Manipulation Functions of the String-Handling Library 362

5.13 [Optional Case Study] Thinking About Objects:Collaborations Among Objects 370

6 Classes and Data Abstraction 404

6.1 Introduction 405

6.2 Structure Definitions 406

6.3 Accessing Structure Members 407

6.4 Implementing User-Defined Type Time with a C-like struct 408

6.5 Implementing Abstract Data Type Time with a class 411

6.6 Class Scope and Accessing Class Members 418

6.7 Separating Interface from Implementation 420

6.8 Controlling Access to Members 424

6.9 Access Functions and Utility Functions 426

6.10 Initializing Class Objects:Constructors 430

6.11 Using Default Arguments with Constructors 430

6.12 Destructors 435

6.13 When Constructors and Destructors Are Called 435

6.14 Using Set and Get Functions 439

6.15 Subtle Trap:Returning a Reference to a private Data Member 445

6.16 Default Memberwise Assignment 448

6.17 Software Reusability 450

6.18 [Optional Case Study] Thinking About Objects:Starting to Program the Classes for the Elevator Simulator 451

7 Classes:Part Ⅱ 468

7.1 Introduction 469

7.2 const (Constant) Objects and const Member Functions 469

7.3 Composition:Objects as Members of Classes 478

7.4 friend Functions and friend Classes 485

7.5 Using the this Pointer 489

7.6 Dynamic Memory Management with Operators new and delete 495

7.7 static Class Members 497

7.8 Data Abstraction and Information Hiding 502

7.8.1 Example:Array Abstract Data Type 504

7.8.2 Example:String Abstract Data Type 504

7.8.3 Example:Queue Abstract Data Type 505

7.9 Container Classes and Iterators 505

7.10 Proxy Classes 506

7.11 [Optional Case Study] Thinking About Objects:Programming the Classes for the Elevator Simulator 509

8 Operator Overloading; String and Array Objects 546

8.1 Introduction 547

8.2 Fundamentals of Operator Overloading 548

8.3 Restrictions on Operator Overloading 549

8.4 Operator Functions as Class Members vs.as friend Functions 550

8.5 Overloading Stream-Insertion and Stream-Extraction Operators 552

8.6 Overloading Unary Operators 555

8.7 Overloading Binary Operators 555

8.8 Case Study:Array Class 556

8.9 Converting between Types 568

8.10 Case Study:string Class 569

8.11 Overloading ++ and -- 581

8.12 Case Study:A Date Class 582

8.13 Standard Library Classes string and vector 588

9 Object-Oriented Programming:Inheritance 609

9.1 Introduction 610

9.2 Base Classes and Derived Classes 611

9.3 protected Members 614

9.4 Relationship between Base Classes and Derived Classes 614

9.5 Case Study:Three-Level Inheritance Hierarchy 637

9.6 Constructors and Destructors in Derived Classes 642

9.7 “Uses A” and “Knows A” Relationships 648

9.8 public,protected and private Inheritance 648

9.9 Software Engineering with Inheritance 649

9.10 [Optional Case Study] Thinking About Objects:Incorporating Inheritance into the Elevator Simulation 650

10 Object-Oriented Programming:Polymorphism 662

10.1 Introduction 663

10.2 Relationships Among Objects in an Inheritance Hierarchy 664

10.2.1 Invoking Base-Class Functions from Derived-Class Objects 665

10.2.2 Aiming Derived-Class Pointers at Base-Class Objects 670

10.2.3 Derived-Class Member-Function Calls via Base-Class Pointers 672

10.2.4 Virtual Functions 673

10.3 Polymorphism Examples 679

10.4 Type Fields and switch Structures 680

10.5 Abstract Classes 680

10.6 Case Study:Inheriting Interface and Implementation 682

10.7 Polymorphism,Virtual Functions and Dynamic Binding “Under the Hood” 695

10.8 Virtual Destructors 699

10.9 Case Study:Payroll System Using Polymorphism and Run-Time Type Information with dynamic_cast and typeid 699

11 Templates 718

11.1 Introduction 719

11.2 Function Templates 720

11.3 Overloading Function Templates 723

11.4 Class Templates 723

11.5 Class Templates and Nontype Parameters 730

11.6 Templates and Inheritance 731

11.7 Templates and Friends 731

11.8 Templates and static Members 732

12 C++ Stream Input/Output 737

12.1 Introduction 739

12.2 Streams 739

12.2.1 Classic Streams vs.Standard Streams 740

12.2.2 iostream Library Header Files 740

12.2.3 Stream Input/Output Classes and Objects 741

12.3 Stream Output 743

12.3.1 Output of char * Variables 743

12.3.2 Character Output using Member Function put 744

12.4 Stream Input 744

12.4.1 get and get line Member Functions 745

12.4.2 istream Member Functions peek,putback and ignore 748

12.4.3 Type-Safe I/O 748

12.5 Unformatted I/O using read,write and gcount 748

12.6 Introduction to Stream Manipulators 749

12.6.1 Integral Stream Base:dec,oct,hex and setbase 750

12.6.2 Floating-Point Precision (precision,setprecision) 751

12.6.3 Field Width (width,setw) 752

12.6.4 Programmer-Defined Manipulators 754

12.7 Stream Format States and Stream Manipulators 755

12.7.1 Trailing Zeros and Decimal Points (showpoint) 756

12.7.2 Justification (left,right and internal) 757

12.7.3 Padding (fill,setfill) 759

12.7.4 Integral Stream Base (dec,oct,hex,showbase) 760

12.7.5 Floating-Point Numbers; Scientific and Fixed Notation (scientific,fixed) 761

12.7.6 Uppercase/Lowercase Control (uppercase) 762

12.7.7 Specifying Boolean Format (boolalpha) 763

12.7.8 Setting and Resetting the Format State via Member-Function flags 764

12.8 Stream Error States 766

12.9 Tying an Output Stream to an Input Stream 768

13 Exception Handling 779

13.1 Introduction 780

13.2 Exception-Handling Overview 781

13.3 Other Error-Handling Techniques 783

13.4 Simple Exception-Handling Example:Divide by Zero 784

13.5 Rethrowing an Exception 788

13.6 Exception Specifications 789

13.7 Processing Unexpected Exceptions 790

13.8 Stack Unwinding 790

13.9 Constructors,Destructors and Exception Handling 792

13.10 Exceptions and Inheritance 793

13.11 Processing new Failures 793

13.12 Class auto_ptr and Dynamic Memory Allocation 797

13.13 Standard Library Exception Hierarchy 800

14 File Processing 808

14.1 Introduction 809

14.2 The Data Hierarchy 809

14.3 Files and Streams 811

14.4 Creating a Sequential-Access File 812

14.5 Reading Data from a Sequential-Access File 816

14.6 Updating Sequential-Access Files 823

14.7 Random-Access Files 824

14.8 Creating a Random-Access File 824

14.9 Writing Data Randomly to a Random-Access File 829

14.10 Reading Data Sequentially from a Random-Access File 831

14.11 Example:A Transaction-Processing Program 834

14.12 Input/Output of Objects 841

15 Class string and String Stream Processing 850

15.1 Introduction 851

15.2 string Assignment and Concatenation 852

15.3 Comparing strings 855

15.4 Substrings 857

15.5 Swapping strings 858

15.6 string Characteristics 859

15.7 Finding Strings and Characters in a string 862

15.8 Replacing Characters in a string 864

15.9 Inserting Characters into a string 866

15.10 Conversion to C-Style char * Strings 867

15.11 Iterators 869

15.12 String Stream Processing 870

16 Web Programming with CGI 880

16.1 Introduction 881

16.2 HTTP Request Types 882

16.3 Multi-Tier Architecture 882

16.4 Accessing Web Servers 883

16.5 Apache HTTP Server 884

16.6 Requesting XHTML Documents 885

16.7 Introduction to CGI 885

16.8 Simple HTTP Transaction 886

16.9 Simple CGI Script 888

16.10 Sending Input to a CGI Script 895

16.11 Using XHTML Forms to Send Input 897

16.12 Other Headers 905

16.13 Case Study:An Interactive Web Page 905

16.14 Cookies 909

16.15 Server-Side Files 915

16.16 Case Study:Shopping Cart 921

16.17 Internet and Web Resources 936

17 Data Structures 942

17.1 Introduction 943

17.2 Self-Referential Classes 944

17.3 Dynamic Memory Allocation and Data Structures 945

17.4 Linked Lists 945

17.5 Stacks 960

17.6 Queues 965

17.7 Trees 969

18 Bits,Characters,Strings and Structures 1000

18.1 Introduction 1001

18.2 Structure Definitions 1001

18.3 Initializing Structures 1003

18.4 Using Structures with Functions 1004

18.5 typedef 1004

18.6 Example:High-Performance Card-Shuffling and Dealing Simulation 1005

18.7 Bitwise Operators 1007

18.8 Bit Fields 1017

18.9 Character-Handling Library 1020

18.10 String-Conversion Functions 1026

18.11 Search Functions of the String-Handling Library 1031

18.12 Memory Functions of the String-Handling Library 1036

19 Preprocessor 1053

19.1 Introduction 1054

19.2 The #include Preprocessor Directive 1054

19.3 The #define Preprocessor Directive:Symbolic Constants 1055

19.4 The #define Preprocessor Directive:Macros 1056

19.5 Conditional Compilation 1057

19.6 The #error and #pragma Preprocessor Directives 1058

19.7 The # and ## Operators 1059

19.8 Line Numbers 1059

19.9 Predefined Symbolic Constants 1060

19.10 Assertions 1060

20 C Legacy Code Topics 1065

20.1 Introduction 1066

20.2 Redirecting Input/Output on UNIX and DOS Systems 1066

20.3 Variable-Length Argument Lists 1067

20.4 Using Command-Line Arguments 1070

20.5 Notes on Compiling Multiple-Source-File Programs 1071

20.6 Program Termination with exit and atexit 1073

20.7 The volatile Type Qualifier 1075

20.8 Suffixes for Integer and Floating-Point Constants 1075

20.9 Signal Handling 1075

20.10 Dynamic Memory Allocation with calloc and realloc 1078

20.11 The Unconditional Branch:goto 1079

20.12 Unions 1080

20.13 Linkage Specifications 1084

21 Standard Template Library (STL) 1090

21.1 Introduction to the Standard Template Library (STL) 1092

21.1.1 Introduction to Containers 1094

21.1.2 Introduction to Iterators 1098

21.1.3 Introduction to Algorithms 1103

21.2 Sequence Containers 1105

21.2.1 vector Sequence Container 1105

21.2.2 l is t Sequence Container 1113

21.2.3 deque Sequence Container 1117

21.3 Associative Containers 1119

21.3.1 multiset Associative Container 1119

21.3.2 set Associative Container 1122

21.3.3 mu l t imap Associative Container 1124

21.3.4 map Associative Container 1126

21.4 Container Adapters 1128

21.4.1 stack Adapter 1128

21.4.2 queue Adapter 1130

21.4.3 priority_queue Adapter 1132

21.5 Algorithms 1133

21.5.1 fill,fill_n,generate and generate_n 1134

21.5.2 equal,mismatch and lexicographical_compare 1136

21.5.3 remove,remove_if,remove_copy and remove_copy_if 1138

21.5.4 replace,replace_if,replace_copy and replace_copy_if 1141

21.5.5 Mathematical Algorithms 1144

21.5.6 Basic Searching and Sorting Algorithms 1148

21.5.7 swap,iter_swap and swap_ranges 1150

21.5.8 copy_backward,merge,unique and reverse 1152

21.5.9 inplace_merge,unique_copy and reverse_copy 1154

21.5.10 Set Operations 1156

21.5.11 lower_bound,upper_bound and equal_range 1160

21.5.12 Heapsort 1162

21.5.13 min and max 1165

21.5.14 Algorithms Not Covered in This Chapter 1166

21.6 Class bitset 1168

21.7 Function Objects 1172

21.8 STL Internet and Web Resources 1175

22 Other Topics 1183

22.1 Introduction 1184

22.2 const_cast Operator 1184

22.3 reinterpret_cast Operator 1185

22.4 namespaces 1186

22.5 Operator Keywords 1190

22.6 explicit Constructors 1192

22.7 mutable Class Members 1197

22.8 Pointers to Class Members (.* and ->*) 1199

22.9 Multiple Inheritance 1201

22.10 Multiple Inheritance and virtual Base Classes 1205

22.11 Closing Remarks 1210

A Operator Precedence Chart 1214

B ASCII Character Set 1216

C Number Systems 1217

C.1 Introduction 1218

C.2 Abbreviating Binary Numbers as Octal Numbers and Hexadecimal Numbers 1221

C.3 Converting Octal Numbers and Hexadecimal Numbers to Binary Numbers 1222

C.4 Converting from Binary,Octal or Hexadecimal to Decimal 1222

C.5 Converting from Decimal to Binary,Octal or Hexadecimal 1223

C.6 Negative Binary Numbers:Two’s Complement Notation 1225

D C++ Internet and Web Resources 1230

D.1 Resources 1230

D.2 Tutorials 1232

D.3 FAQs 1233

D.4 Visual C++ 1233

D.5 Newsgroups 1233

D.6 Compilers and Development Tools 1234

D.7 Standard Template Library 1234

E Introduction to XHTML 1236

E.1 Introduction 1237

E.2 Editing XHTML 1237

E.3 First XHTML Example 1238

E.4 Headers 1240

E.5 Linking 1242

E.6 Images 1245

E.7 Special Characters and More Line Breaks 1249

E.8 Unordered Lists 1251

E.9 Nested and Ordered Lists 1251

E.10 Basic XHTML Tables 1252

E.11 Intermediate XHTML Tables and Formatting 1257

E.12 Basic XHTML Forms 1259

E.13 More Complex XHTML Forms 1262

E.14 Internet and World Wide Web Resources 1269

F XHTML Special Characters 1274

Bibliography 1275

Index 1281

相关图书
作者其它书籍
返回顶部