Learning C++ / PDF



Learning C++ / PDF
Learning C++ / PDF







Table of Contents:







1 Introduction 
1.1 How a Program Works . . . . . . . . . . . . . . . . . . . . . . . . 3
1.2 How Programming Works . . . . . . . . . . . . . . . . . . . . . . 3
1.2.1 Machine Code and Assembler . . . . . . . . . . . . . . . . 3
1.2.2 High-Level Languages . . . . . . . . . . . . . . . . . . . . 4
1.3 Issues of Programming . . . . . . . . . . . . . . . . . . . . . . . . 7
1.4 C++ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7
1.4.1 The Standard . . . . . . . . . . . . . . . . . . . . . . . . . 7
1.5 What You Need . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7
1.5.1 A Compiler . . . . . . . . . . . . . . . . . . . . . . . . . . 7
1.5.2 An Editor . . . . . . . . . . . . . . . . . . . . . . . . . . . 8


2 Hello World! 
2.1 The Minimal C++ Program . . . . . . . . . . . . . . . . . . . . . 10

3 Doing Things With Objects 
3.1 What is an Object? . . . . . . . . . . . . . . . . . . . . . . . . . 11
3.1.1 Type . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11
3.1.2 Status . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11
3.1.3 Name . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11
3.2 Objects in C++ . . . . . . . . . . . . . . . . . . . . . . . . . . . 11
3.2.1 Valid Names . . . . . . . . . . . . . . . . . . . . . . . . . 12
3.2.2 Fundamental Types . . . . . . . . . . . . . . . . . . . . . 12
3.3 Assigning . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13
3.4 Input and Output . . . . . . . . . . . . . . . . . . . . . . . . . . 13

4 Make Decisions 
4.1 if . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17
4.1.1 Compound Statements . . . . . . . . . . . . . . . . . . . . 18
4.2 switch . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18
4.3 The Most Important Operators . . . . . . . . . . . . . . . . . . . 19
4.3.1 Precedence and Parentheses . . . . . . . . . . . . . . . . . 20
4.4 Scope . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20
4.4.1 Lifetime . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22
4.4.2 Hiding . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22
4.5 Examples . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23
4.6 Exercises . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25


5 Loops 
5.1 while . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27
5.2 do. . . while . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 28
5.3 for . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 29
5.4 break and continue . . . . . . . . . . . . . . . . . . . . . . . . . 30
5.5 Examples . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 31
5.6 Exercises . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 33

6 Functions 
6.1 The Declaration . . . . . . . . . . . . . . . . . . . . . . . . . . . 36
6.2 The Body . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 37
6.2.1 return . . . . . . . . . . . . . . . . . . . . . . . . . . . . 37
6.3 Calling a Function . . . . . . . . . . . . . . . . . . . . . . . . . . 37
6.4 void Functions . . . . . . . . . . . . . . . . . . . . . . . . . . . . 38
6.5 Scope . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 38
6.6 int main() . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 39
6.7 Pass-by-Value . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 40
6.8 Recursive Functions . . . . . . . . . . . . . . . . . . . . . . . . . 40
6.9 Examples . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 42
6.10 Exercises . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 43

7 Structs 
7.1 struct . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 45
7.1.1 Member Access . . . . . . . . . . . . . . . . . . . . . . . . 46
7.1.2 Helper Functions . . . . . . . . . . . . . . . . . . . . . . . 47

8 References 
8.1 Pass-by-Reference . . . . . . . . . . . . . . . . . . . . . . . . . . 50
8.1.1 Speed . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 51
8.2 Constants . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 52
8.2.1 Constant Objects . . . . . . . . . . . . . . . . . . . . . . . 52
8.2.2 Constant References . . . . . . . . . . . . . . . . . . . . . 53

9 Classes 
9.1 Member Scope . . . . . . . . . . . . . . . . . . . . . . . . . . . . 57
9.2 Member Functions . . . . . . . . . . . . . . . . . . . . . . . . . . 58
9.2.1 Constant Member Functions . . . . . . . . . . . . . . . . 59
9.2.2 Const Correctness . . . . . . . . . . . . . . . . . . . . . . 60
9.3 Encapsulation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 61
9.4 Structs vs Classes . . . . . . . . . . . . . . . . . . . . . . . . . . . 62

10 Pointers 
10.1 Using Pointers . . . . . . . . . . . . . . . . . . . . . . . . . . . . 63
10.1.1 Declaring Pointers . . . . . . . . . . . . . . . . . . . . . . 63
10.1.2 Assigning Pointers . . . . . . . . . . . . . . . . . . . . . . 64
10.1.3 Dereferencing Pointers . . . . . . . . . . . . . . . . . . . . 64
10.1.4 The NULL Pointer . . . . . . . . . . . . . . . . . . . . . . . 64
10.1.5 A Simple Example . . . . . . . . . . . . . . . . . . . . . . 64
10.2 Pointer Arithmetics . . . . . . . . . . . . . . . . . . . . . . . . . 64
10.3 Examples . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 64
10.4 Exercises . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 64




 Click here for  Download PDF / FREE


Learning C++ / PDF


0 commentaires: