Power By Dholu Production

Responsive Ads Here

Wednesday, January 10, 2018

C++ Annotations Version 10.1.0 by Frank B. Brokken |E-Book

C++ Annotations Version 10.1.0 by Frank B. Brokken |E-Book
C++ Annotations Version 10.1.0 by Frank B. Brokken |E-Book


Table of Contents:

1 Overview Of The Chapters......................................................................... 1
2 Introduction ................................................................................................. 3
2.1 What’s new in the C++ Annotations . . . . . . . . . . . . . . . . . . . . . . . . . 4
2.2 C++’s history . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7
2.3 C++: advantages and claims . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10
2.4 What is Object-Oriented Programming? . . . . . . . . . . . . . . . . . . . . . . 11
2.5 Differences between C and C++ . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12

3 A First Impression Of C++......................................................................... 25
3.1 Extensions to C . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25
3.2 Functions as part of structs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 31
3.3 More extensions to C . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 35
3.4 New language-defined data types . . . . . . . . . . . . . . . . . . . . . . . . . . . . 48
3.5 A new syntax for casts . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .  52
3.6 Keywords and reserved names in C++ . . . . . . . . . . . . . . . . . . . . . . . . 56

4 Name Spaces ..................................................................................................57

5 The ‘string’ Data Type ...................................................................................69
5.1 Operations on strings . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 70
5.2 A std::string reference . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 71

6 The IO-stream Library..................................................................................... 85
6.1 Special header files . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .88
6.2 The foundation: the class ‘ios_base’ . . . . . . . . . . . . . . . . . . . . . . . . . . . . .89
6.3 Interfacing ‘streambuf’ objects: the class ‘ios’ . . . . . . . . . . . . . . . . . . . . .89
6.4 Output . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .100
6.5 Input . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 106
6.6 Advanced topics . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 114

7 Classes .................................................................................................................123
7.1 The constructor . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .125
7.2 Ambiguity resolution . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 132
7.3 Objects inside objects: composition . . . . . . . . . . . . . . . . . . . . . . . . . . . . 136
7.4 Data member initializers . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 139
7.5 Uniform initialization . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 141
7.6 Defaulted and deleted class members . . . . . . . . . . . . . . . . . . . . . . . . . . .  .144
7.7 Const member functions and const objects . . . . . . . . . . . . . . . . . . . . . . . . 145
7.8 Member function reference bindings (& and &&) . . . . . . . . . . . . . . . . . . 150
7.9 The keyword ‘inline’ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 150
7.10 Local classes: classes inside functions . . . . . . . . . . . . . . . . . . . . . . . . . .  153
7.11 The keyword ‘mutable’ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .155
7.12 Header file organization . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 155

8 Static Data And Functions ..................................................................................163
8.1 Static data . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 163
8.2 Static member functions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ..  170

9 Classes And Memory Allocation...................................................................... 175
9.1 Operators ‘new’ and ‘delete’ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 176
9.2 The destructor . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .  183
9.3 The assignment operator . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .189

10 Exceptions .......................................................................................................... 217
10.1 Exception syntax . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 218
10.2 An example using exceptions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 218
10.3 Throwing exceptions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 223
10.4 The try block . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 228
10.5 Catching exceptions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 229
10.6 Declaring exception throwers (deprecated) . . . . . . . . . . . . . . . . . . . . . . . 232
10.7 Iostreams and exceptions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 235
10.8 Standard Exceptions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 236
10.9 System error, error code and error category . . . . . . . . . . . . . . . . . . . . . . . 237

11 More Operator Overloading................................................................................. 257
11.1 Overloading ‘operator[]()’ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .257
11.2 Overloading the insertion and extraction operators . . . . . . . . . . . . . . . . . . 260
11.3 Conversion operators . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 262
11.4 The keyword ‘explicit’ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 265
11.5 Overloading the increment and decrement operators . . . . . . . . . . . . . . . . . 267
11.6 Overloading binary operators . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 269
11.7 Overloading ‘operator new(size_t)’ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 274
11.8 Overloading ‘operator delete(void *)’ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 276
11.9 Operators ‘new[]’ and ‘delete[]’ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 277

12 Abstract Containers ..........................................................................................293
12.1 Notations used in this chapter . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 295
12.2 The ‘pair’ container . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .296
12.3 Allocators . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .  297
12.4 Available Containers . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 298
12.5 The ‘complex’ container . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 345
12.6 Unrestricted Unions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 347

13 Inheritance ............................................................................................................355
13.1 Related types . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 356
13.2 Access rights: public, private, protected . . . . . . . . . . . . . . . . . . . . . . . . . . . 359
13.3 The constructor of a derived class . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 363
13.4 The destructor of a derived class . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 366
13.5 Redefining member functions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 367
13.6 i/ostream::init . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .  370
13.7 Multiple inheritance . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 370
13.8 Conversions between base classes and derived classes . . . . . . . . . . . . . . . . 373

14 Polymorphism ...............................................................................................381
14.1 Virtual functions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 383
14.2 Virtual destructors . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 386
14.3 Pure virtual functions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 387

15 Friends ...........................................................................................................427
15.1 Friend functions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 428
15.2 Extended friend declarations . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 429

16 Classes Having Pointers To Members............................................................... 431
16.1 Pointers to members: an example . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .. . 431
16.2 Defining pointers to members . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 432
16.3 Using pointers to members . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 434
16.4 Pointers to static members . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 437
16.5 Pointer sizes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 438

17 Nested Classes ....................................................................................................441
17.1 Defining nested class members . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 443
17.2 Declaring nested classes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .  . . . 444
17.3 Accessing private members in nested classes . . . . . . . . . . . . . . . . .  . . . . 444
17.4 Nesting enumerations . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 448

18 The Standard Template Library ...........................................................................453
18.1 Predefined function objects . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .. . . . . . 453
18.2 Iterators . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .. . . . . . . . . . . . . . 463

19 The STL Generic Algorithms .................................................................................525

20 Multi Threading....................................................................................................... 609

21 Function Templates.................................................................................................. 679

22 Class Templates........................................................................................................ 721

23 Advanced Template Use.......................................................................................... 815

24 Concrete Examples.................................................................................................. 877