Cart

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  

Số lượng:
Tổng tiền:
Giá có thể thay đổi bất kỳ khi nào.
Thời hạn giao hàng: 03 ngày làm việc với sách eBook và 30 ngày với sách In. Gọi để được Tư vấn Giáo Trình.

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

TỔNG QUAN SÁCH

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.

MỤC LỤC

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

-%
0₫ 0₫
0915920514
0915920514