C++ Crash Course: a fast-Paced Introduction



Yüklə 7 Mb.
Pdf görüntüsü
səhifə13/71
tarix20.09.2023
ölçüsü7 Mb.
#145939
1   ...   9   10   11   12   13   14   15   16   ...   71
C Crash Course A Fast-Paced Introduction by Josh Lospinoso

11 
SMART POINTERS 
341
Smart Pointers . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 341
Smart Pointer Ownership . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 342
Scoped Pointers . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 342
Constructing . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 342
Bring in the Oath Breakers . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 343
Implicit bool Conversion Based on Ownership . . . . . . . . . . . . . . . . . . . . . . 344
RAII Wrapper . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 344
Pointer Semantics . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 345
Comparison with nullptr . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 346
Swapping . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 346
Resetting and Replacing a scoped_ptr . . . . . . . . . . . . . . . . . . . . . . . . . . . . 347
Non-transferability . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 348
boost::scoped_array . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 348
A Partial List of Supported Operations . . . . . . . . . . . . . . . . . . . . . . . . . . . . 349


xviii
Contents in Detail
Unique Pointers . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 349
Constructing . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 350
Supported Operations . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 350
Transferable, Exclusive Ownership . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 350
Unique Arrays . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 351
Deleters . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 352
Custom Deleters and System Programming . . . . . . . . . . . . . . . . . . . . . . . . . 352
A Partial List of Supported Operations . . . . . . . . . . . . . . . . . . . . . . . . . . . . 354
Shared Pointers . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 355
Constructing . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 356
Specifying an Allocator . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 356
Supported Operations . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 357
Transferable, Non-Exclusive Ownership . . . . . . . . . . . . . . . . . . . . . . . . . . . 358
Shared Arrays . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 358
Deleters . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 359
A Partial List of Supported Operations . . . . . . . . . . . . . . . . . . . . . . . . . . . . 359
Weak Pointers . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 360
Constructing . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 361
Obtaining Temporary Ownership . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 361
Advanced Patterns . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 362
Supported Operations . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 362
Intrusive Pointers . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 363
Summary of Smart Pointer Options . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 364
Allocators . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 365
Summary . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 367

Yüklə 7 Mb.

Dostları ilə paylaş:
1   ...   9   10   11   12   13   14   15   16   ...   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