目錄(230章)
倒序
- cover
- Title Page
- Copyright
- Mastering C++ Programming
- Credits
- About the Author
- About the Reviewer
- www.PacktPub.com
- Why subscribe?
- Customer Feedback
- Dedication
- Preface
- What this book covers
- What you need for this book
- Who this book is for
- Conventions
- Reader feedback
- Customer support
- Downloading the example code
- Errata
- Piracy
- Questions
- C++17 Features
- C++17 background
- What's new in C++17?
- What features are deprecated or removed in C++17?
- Key features in C++17
- Easier nested namespace syntax
- New rules for type auto-detection from braced initializer list
- Simplified static_assert
- The std::invoke( ) method
- Structured binding
- If and Switch local scoped variables
- Template type auto-deduction for class templates
- Inline variables
- Summary
- Standard Template Library
- The Standard Template Library architecture
- Algorithms
- Iterators
- Containers
- Functors
- Sequence containers
- Array
- Code walkthrough
- Commonly used APIs in an array
- Vector
- Code walkthrough
- Commonly used vector APIs
- Code walkthrough
- Pitfalls of a vector
- List
- Commonly used APIs in a list
- Forward list
- Code walkthrough
- Commonly used APIs in a forward_list container
- Deque
- Commonly used APIs in a deque
- Associative containers
- Set
- Code walkthrough
- Commonly used APIs in a set
- Map
- Code walkthrough
- Commonly used APIs in a map
- Multiset
- Multimap
- Unordered sets
- Unordered maps
- Unordered multisets
- Unordered multimaps
- Container adapters
- Stack
- Commonly used APIs in a stack
- Queue
- Commonly used APIs in a queue
- Priority queue
- Commonly used APIs in a priority queue
- Summary
- Template Programming
- Generic programming
- Function templates
- Code walkthrough
- Overloading function templates
- Code walkthrough
- Class template
- Code walkthrough
- Explicit class specializations
- Code walkthrough
- Partial template specialization
- Summary
- Smart Pointers
- Memory management
- Issues with raw pointers
- Smart pointers
- auto_ptr
- Code walkthrough - Part 1
- Code walkthrough - Part 2
- unique_ptr
- Code walkthrough
- shared_ptr
- Code walkthrough
- weak_ptr
- Circular dependency
- Summary
- Developing GUI Applications in C++
- Qt
- Installing Qt 5.7.0 in Ubuntu 16.04
- Qt Core
- Writing our first Qt console application
- Qt Widgets
- Writing our first Qt GUI application
- Layouts
- Writing a GUI application with a horizontal layout
- Writing a GUI application with a vertical layout
- Writing a GUI application with a box layout
- Writing a GUI application with a grid layout
- Signals and slots
- Using stacked layout in Qt applications
- Writing a simple math application combining multiple layouts
- Summary
- Multithreaded Programming and Inter-Process Communication
- Introduction to POSIX pthreads
- Creating threads with the pthreads library
- How to compile and run
- Does C++ support threads natively?
- How to write a multithreaded application using the native C++ thread feature
- How to compile and run
- Using std::thread in an object-oriented fashion
- How to compile and run
- What did you learn?
- Synchronizing threads
- What would happen if threads weren't synchronized?
- How to compile and run
- Let's use mutex
- How to compile and run
- What is a deadlock?
- How to compile and run
- What did you learn?
- Shared mutex
- Conditional variable
- How to compile and run
- What did you learn?
- Semaphore
- Concurrency
- How to compile and run
- Asynchronous message passing using the concurrency support library
- How to compile and run
- Concurrency tasks
- How to compile and run
- Using tasks with a thread support library
- How to compile and run
- Binding the thread procedure and its input to packaged_task
- How to compile and run
- Exception handling with the concurrency library
- How to compile and run
- What did you learn?
- Summary
- Test-Driven Development
- TDD
- Common myths and questions around TDD
- Does it take more efforts for a developer to write a unit test?
- Is code coverage metrics good or bad?
- Does TDD work for complex legacy projects?
- Is TDD even applicable for embedded or products that involve hardware?
- Unit testing frameworks for C++
- Google test framework
- Installing Google test framework on Ubuntu
- How to build google test and mock together as one single static library without installing?
- Writing our first test case using the Google test framework
- Using Google test framework in Visual Studio IDE
- TDD in action
- Testing a piece of legacy code that has dependency
- Summary
- Behavior-Driven Development
- Behavior-driven development
- TDD versus BDD
- C++ BDD frameworks
- The Gherkin language
- Installing cucumber-cpp in Ubuntu
- Installing the cucumber-cpp framework prerequisite software
- Building and executing the test cases
- Feature file
- Spoken languages supported by Gherkin
- The recommended cucumber-cpp project folder structure
- Writing our first Cucumber test case
- Integrating our project in cucumber-cpp CMakeLists.txt
- Executing our test case
- Dry running your cucumber test cases
- BDD - a test-first development approach
- Let's build and run our BDD test case
- It's testing time!
- Summary
- Debugging Techniques
- Effective debugging
- Debugging strategies
- Debugging tools
- Debugging your application using GDB
- GDB commands quick reference
- Debugging memory leaks with Valgrind
- The Memcheck tool
- Detecting memory access outside the boundary of an array
- Detecting memory access to already released memory locations
- Detecting uninitialized memory access
- Detecting memory leaks
- Fixing the memory leaks
- Mismatched use of new and free or malloc and delete
- Summary
- Code Smells and Clean Code Practices
- Code refactoring
- Code smell
- What is agile?
- SOLID design principle
- Single responsibility principle
- Open closed principle
- Liskov substitution principle
- Interface segregation
- Dependency inversion
- Code smell
- Comment smell
- Long method
- Long parameter list
- Duplicate code
- Conditional complexity
- Large class
- Dead code
- Primitive obsession
- Data class
- Feature envy
- Summary 更新時間:2021-07-02 18:29:27
推薦閱讀
- Java逍遙游記
- 跟老齊學Python:輕松入門
- Flask Web開發入門、進階與實戰
- SQL語言從入門到精通
- oreilly精品圖書:軟件開發者路線圖叢書(共8冊)
- PHP 編程從入門到實踐
- HTML5+CSS3網站設計教程
- Functional Kotlin
- Node.js:來一打 C++ 擴展
- Terraform:多云、混合云環境下實現基礎設施即代碼(第2版)
- SQL Server 2008 R2數據庫技術及應用(第3版)
- C++ Application Development with Code:Blocks
- Android系統下Java編程詳解
- Scala Functional Programming Patterns
- Mastering Apache Camel
- 計算機教學研究與實踐:2017學術年會論文集
- 深入解析Java虛擬機HotSpot
- CentOS High Performance
- Learning Unity iOS Game Development
- Java語言案例教程
- Learning Bitcoin
- 瘋狂Java講義(第5版)
- AWS Administration:The Definitive Guide
- Hadoop技術內幕:深入解析YARN架構設計與實現原理
- KnockoutJS by Example
- HTML 5移動平臺的Java Web實用項目開發
- UML 建模、設計與分析:從新手到高手
- CimatronE 10.0三維設計與數控編程基本功特訓
- 軟件困局:為什么聰明的程序員會寫出糟糕的代碼
- Web Design Blueprints