万本电子书0元读

万本电子书0元读

顶部广告

Mastering C++ Programming电子书

售       价:¥

11人正在读 | 0人评论 9.8

作       者:Jeganathan Swaminathan

出  版  社:Packt Publishing

出版时间:2017-09-01

字       数:34.6万

所属分类: 进口书 > 外文原版书 > 电脑/网络

温馨提示:数字商品不支持退换货,不提供源文件,不支持导出打印

为你推荐

  • 读书简介
  • 目录
  • 累计评论(0条)
  • 读书简介
  • 目录
  • 累计评论(0条)
Take your C++ coding to the next level by leveraging the latest features and advanced techniques to building high performing, reliable applications. About This Book ? Get acquainted with the latest features in C++ 17 ? Take advantage of the myriad of features and possibilities that C++ offers to build real-world applications ? Write clear and expressive code in C++, and get insights into how to keep your code error-free Who This Book Is For This book is for experienced C++ developers. If you are a novice C++ developer, then it’s highly recommended that you get a solid understanding of the C++ language before reading this book What You Will Learn ? Write modular C++ applications in terms of the existing and newly introduced features ? Identify code-smells, clean up, and refactor legacy C++ applications ? Leverage the possibilities provided by Cucumber and Google Test/Mock to automate test cases ? Test frameworks with C++ ? Get acquainted with the new C++17 features ? Develop GUI applications in C++ ? Build portable cross-platform applications using standard C++ features In Detail C++ has come a long way and has now been adopted in several contexts. Its key strengths are its software infrastructure and resource-constrained applications. The C++ 17 release will change the way developers write code, and this book will help you master your developing skills with C++. With real-world, practical examples explaining each concept, the book will begin by introducing you to the latest features in C++ 17. It encourages clean code practices in C++ in general, and demonstrates the GUI app-development options in C++. You’ll get tips on avoiding memory leaks using smart-pointers. Next, you’ll see how multi-threaded programming can help you achieve concurrency in your applications. Moving on, you’ll get an in-depth understanding of the C++ Standard Template Library. We show you the concepts of implementing TDD and BDD in your C++ programs, and explore template-based generic programming, giving you the expertise to build powerful applications. Finally, we’ll round up with debugging techniques and best practices.By the end of the book, you’ll have an in-depth understanding of the language and its various facets. Style and approach This straightforward guide will help you level up your skills in C++ programming, be it for enterprise software or for low-latency applications like games. Filled with real-world, practical examples, this book will take you gradually up the steep learning curve that is C++.
目录展开

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

累计评论(0条) 0个书友正在讨论这本书 发表评论

发表评论

发表评论,分享你的想法吧!

买过这本书的人还买过

读了这本书的人还在读

回顶部