C++ Crash Course: a fast-Paced Introduction



Yüklə 7 Mb.
Pdf görüntüsü
səhifə7/71
tarix20.09.2023
ölçüsü7 Mb.
#145939
1   2   3   4   5   6   7   8   9   10   ...   71
C Crash Course A Fast-Paced Introduction by Josh Lospinoso


THE OBJECT LIFE CYCLE 
89
An Object’s Storage Duration . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 89
Allocation, Deallocation, and Lifetime . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 90
Memory Management . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 90
Automatic Storage Duration . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 90
Static Storage Duration . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 91
Thread-Local Storage Duration . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 94
Dynamic Storage Duration . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 95
Tracing the Object Life Cycle . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 96
Exceptions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 98
The throw Keyword . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 98
Using try-catch Blocks . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 99
stdlib Exception Classes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 100
Handling Exceptions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 102
User-Defined Exceptions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 104
The noexcept Keyword . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 104
Call Stacks and Exceptions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 105
A SimpleString Class . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 107
Appending and Printing . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 108
Using SimpleString . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 109
Composing a SimpleString . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 110
Call Stack Unwinding . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 111
Exceptions and Performance . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 113
Alternatives to Exceptions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 114
Copy Semantics . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 115
Copy Constructors . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 117
Copy Assignment . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 119
Default Copy . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 121
Copy Guidelines . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 122


xiv
Contents in Detail
Move Semantics . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 122
Copying Can Be Wasteful . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 122
Value Categories . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 124
lvalue and rvalue References . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 124
The std::move Function . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 125
Move Construction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 126
Move Assignment . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 126
The Final Product . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 128
Compiler-Generated Methods . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 129
Summary . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 130

Yüklə 7 Mb.

Dostları ilə paylaş:
1   2   3   4   5   6   7   8   9   10   ...   71




Verilənlər bazası müəlliflik hüququ ilə müdafiə olunur ©azkurs.org 2024
rəhbərliyinə müraciət

gir | qeydiyyatdan keç
    Ana səhifə


yükləyin