C++ Core Guidelines Explained: Best Practices for Modern C++, 1st edition
BRAND: PEARSON
Publisher: | Addison-Wesley Professional |
Author: | Rainer Grimm |
Edition: | (April 22, 2022) © 2022 |
eBook ISBN: | 9780136875611 |
Print ISBN: | 9780136875673 |
Type: | 1 Year Subscription. Dành cho Cá nhân |
eBook edition. 1 year Subscription. Dành cho Cá nhân | Trường ĐH, Nhóm, Thư Viện: Gọi 0915920514 để báo giá Pearson, Vital Source eBook hoặc mua Sách In
See what in the box
Mô tả sản phẩm
Chuyên gia hướng dẫn C++ Rainer Grimm cung cấp nội dung bao quát thực tế, dễ tiếp cận về Nguyên tắc cốt lõi mang lại giá trị cao nhất cho sinh viên học ngôn ngữ lập trình C++. Cung cấp những hiểu biết mới, bối cảnh không thể thiếu và các ví dụ C++ đã được chứng minh rút ra từ các khóa học và hội thảo của mình, Grimm giúp sinh viên nhận được nhiều giá trị hơn từ các hướng dẫn.
Phạm vi bao quát của văn bản này đề cập đến triết lý lập trình C++, giao diện, hàm, lớp, phân cấp lớp, liệt kê, quản lý tài nguyên, biểu thức, câu lệnh, hiệu suất, đồng thời, xử lý lỗi, hằng số, tính bất biến, mẫu, lập trình chung, kiểu C lập trình, tệp nguồn, Thư viện chuẩn, v.v. Mỗi phần liên kết trực tuyến với tiêu chuẩn ban đầu và bất cứ khi nào thích hợp, Grimm sẽ xem trước những tiến bộ từ C++20 và C++23. Với Grimm, sinh viên có thể sử dụng Nguyên tắc cốt lõi của C++ để viết mã C++ nhất quán, mạnh mẽ và hoạt động tốt hơn.
List of selected C++ Core Guidelines xiii
List of figures xxiii
List of tables xxvii
Foreword xxix
Preface xxxi
Acknowledgments xxxvii
About the author xxxix
Part I: The Guidelines 1
Chapter 1: Introduction 3
Target readership 3
Aim 4
Non-aims 4
Enforcement 4
Structure 4
Major sections 5
Chapter 2: Philosophy 7
Chapter 3: Interfaces 15
The curse of non-const global variables 16
Dependency injection as a cure 18
Making good interfaces 20
Related rules 25
Chapter 4: Functions 27
Function definitions 28
Parameter passing: in and out 32
Parameter passing: ownership semantics 38
Value return semantics 42
Other functions 46
Related rules 52
Chapter 5: Classes and Class Hierarchies 53
Summary rules 54
Concrete types 58
Constructors, assignments, and destructors 59
Class hierarchies 98
Overloading and overloaded operators 117
Unions 126
Related rules 129
Chapter 6: Enumerations 131
General rules 131
Related rules 137
Chapter 7: Resource Management 139
General rules 140
Allocation and deallocation 145
Smart pointers 150
Related rules 164
Chapter 8: Expressions and Statements 165
General 166
Declarations 168
Expressions 186
Statements 199
Arithmetic 204
Related rules 210
Chapter 9: Performance 213
Wrong optimizations 214
Wrong assumptions 214
Enable optimization 218
Related rules 230
Chapter 10: Concurrency 231
General guidelines 232
Concurrency 245
Parallelism 266
Message passing 269
Lock-free programming 273
Related rules 277
Chapter 11: Error Handling 279
Design 281
Implementation 283
If you can't throw 288
Related rules 292
Chapter 12: Constants and Immutability 293
Use const 294
Use constexpr 298
Chapter 13: Templates and Generic Programming 301
Use 302
Interfaces 305
Definition 320
Hierarchies 330
Variadic templates 332
Metaprogramming 336
Other rules 362
Related rules 372
Chapter 14: C-Style Programming 375
Entire source code available 376
Entire source code not available 378
Chapter 15: Source Files 383
Interface and implementation files 384
Namespaces 391
Chapter 16: The Standard Library 397
Containers 398
Text 404
Input and output 411
Related rules 419
Part II: Supporting Sections 421
Chapter 17: Architectural Ideas 423
Chapter 18: Nonrules and Myths 427
Chapter 19: Profiles 437
Pro.typeType safety 438
Pro.boundsBounds safety 439
Pro.lifetimeLifetime safety 439
Chapter 20: Guidelines Support Library 441
Views 441
Ownership pointers 442
Assertions 443
Utilities 443
Part III: Appendixes 445
Appendix A: Enforcing the C++ Core Guidelines 447
Visual Studio 448
clang-tidy 450
Appendix B: Concepts 453
Appendix C: Contracts 457
Index 459
Chuyên gia hướng dẫn C++ Rainer Grimm cung cấp nội dung bao quát thực tế, dễ tiếp cận về Nguyên tắc cốt lõi mang lại giá trị cao nhất cho sinh viên học ngôn ngữ lập trình C++. Cung cấp những hiểu biết mới, bối cảnh không thể thiếu và các ví dụ C++ đã được chứng minh rút ra từ các khóa học và hội thảo của mình, Grimm giúp sinh viên nhận được nhiều giá trị hơn từ các hướng dẫn.
Phạm vi bao quát của văn bản này đề cập đến triết lý lập trình C++, giao diện, hàm, lớp, phân cấp lớp, liệt kê, quản lý tài nguyên, biểu thức, câu lệnh, hiệu suất, đồng thời, xử lý lỗi, hằng số, tính bất biến, mẫu, lập trình chung, kiểu C lập trình, tệp nguồn, Thư viện chuẩn, v.v. Mỗi phần liên kết trực tuyến với tiêu chuẩn ban đầu và bất cứ khi nào thích hợp, Grimm sẽ xem trước những tiến bộ từ C++20 và C++23. Với Grimm, sinh viên có thể sử dụng Nguyên tắc cốt lõi của C++ để viết mã C++ nhất quán, mạnh mẽ và hoạt động tốt hơn.
List of selected C++ Core Guidelines xiii
List of figures xxiii
List of tables xxvii
Foreword xxix
Preface xxxi
Acknowledgments xxxvii
About the author xxxix
Part I: The Guidelines 1
Chapter 1: Introduction 3
Target readership 3
Aim 4
Non-aims 4
Enforcement 4
Structure 4
Major sections 5
Chapter 2: Philosophy 7
Chapter 3: Interfaces 15
The curse of non-const global variables 16
Dependency injection as a cure 18
Making good interfaces 20
Related rules 25
Chapter 4: Functions 27
Function definitions 28
Parameter passing: in and out 32
Parameter passing: ownership semantics 38
Value return semantics 42
Other functions 46
Related rules 52
Chapter 5: Classes and Class Hierarchies 53
Summary rules 54
Concrete types 58
Constructors, assignments, and destructors 59
Class hierarchies 98
Overloading and overloaded operators 117
Unions 126
Related rules 129
Chapter 6: Enumerations 131
General rules 131
Related rules 137
Chapter 7: Resource Management 139
General rules 140
Allocation and deallocation 145
Smart pointers 150
Related rules 164
Chapter 8: Expressions and Statements 165
General 166
Declarations 168
Expressions 186
Statements 199
Arithmetic 204
Related rules 210
Chapter 9: Performance 213
Wrong optimizations 214
Wrong assumptions 214
Enable optimization 218
Related rules 230
Chapter 10: Concurrency 231
General guidelines 232
Concurrency 245
Parallelism 266
Message passing 269
Lock-free programming 273
Related rules 277
Chapter 11: Error Handling 279
Design 281
Implementation 283
If you can't throw 288
Related rules 292
Chapter 12: Constants and Immutability 293
Use const 294
Use constexpr 298
Chapter 13: Templates and Generic Programming 301
Use 302
Interfaces 305
Definition 320
Hierarchies 330
Variadic templates 332
Metaprogramming 336
Other rules 362
Related rules 372
Chapter 14: C-Style Programming 375
Entire source code available 376
Entire source code not available 378
Chapter 15: Source Files 383
Interface and implementation files 384
Namespaces 391
Chapter 16: The Standard Library 397
Containers 398
Text 404
Input and output 411
Related rules 419
Part II: Supporting Sections 421
Chapter 17: Architectural Ideas 423
Chapter 18: Nonrules and Myths 427
Chapter 19: Profiles 437
Pro.typeType safety 438
Pro.boundsBounds safety 439
Pro.lifetimeLifetime safety 439
Chapter 20: Guidelines Support Library 441
Views 441
Ownership pointers 442
Assertions 443
Utilities 443
Part III: Appendixes 445
Appendix A: Enforcing the C++ Core Guidelines 447
Visual Studio 448
clang-tidy 450
Appendix B: Concepts 453
Appendix C: Contracts 457
Index 459