目錄(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
推薦閱讀
- C++案例趣學
- Learning Docker
- The React Workshop
- Python金融數據分析
- C語言程序設計實踐教程
- 軟件測試技術指南
- 常用工具軟件立體化教程(微課版)
- Multithreading in C# 5.0 Cookbook
- Learning Apache Karaf
- Regression Analysis with Python
- Android應用開發深入學習實錄
- Mastering Apache Storm
- Android Studio Cookbook
- PHP+MySQL Web應用開發教程
- 零基礎入門Python數據分析與機器學習
- Visual C++網絡編程教程(Visual Studio 2010平臺)
- OpenCV:Computer Vision Projects with Python
- Java EE 8 Development with Eclipse
- Big Data Forensics:Learning Hadoop Investigations
- Python接口自動化測試
- 客戶驅動的產品開發
- Java語言程序設計
- Test-Driven Java Development
- 思維訓練啟蒙新觀念:青少年Pascal語言編程搶先起跑一路通
- Android Studio 3.6 Development Essentials(Java Edition)
- Continuous Delivery with Docker and Jenkins
- Hands-On Design Patterns with React Native
- Red Hat Enterprise Linux Server Cookbook
- Python科學計算入門與實戰:視頻教學版
- 軟件是這樣“煉”成的:Java學習全演練