Go from competent C++ developer to skilled designer or architect using this book as your C++ design master class. This title will guide you through the design and implementation of a fun, engaging case study. Starting with a quick exploration of the requirements for building the application, you'll delve into selecting an appropriate architecture, eventually designing and implementing all of the necessary modules to meet the project’s requirements. By the conclusion of Practical C++ Design, you'll have constructed a fully functioning calculator that builds and executes on multiple platforms. Access to the complete source code will help speed your learning.
Utilize the Model-View-Controller pattern to determine the optimal architecture for the calculator; the observer pattern to design an event system; the singleton pattern as you design the calculator’s central data repository, a reusable stack; the command pattern to design a command system supporting unlimited undo/redo; and the abstract factory pattern for a cross-platform plugin infrastructure to make the calculator extensible.
What You Will Learn
Read a specification document and translate it into a practical C++ design
Understand trade-offs in selecting between alternative design scenarios
Gain practical experience in applying design patterns to realistic development scenarios
Learn how to effectively use language elements of modern C++ to create a lasting design
Develop a complete C++ program from a blank canvas through to a fully functioning, cross platform application
Read, modify, and extend existing, high quality code
Learn the fundamentals of API design, including class, module, and plugin interfaces
Who This Book Is For
The experienced C++ developer ready to take the next step to becoming a skilled C++ designer.
Making Use of Python
A step-by-step guide on how to use Python for CGI scripting, GUI development, network programming, and much more!
Organizations such as NASA, Hewlett-Packard, and Xerox have already discovered the power that Python has to offer. This multipurpose development language can be used on virtually every platform, from Windows and Linux...
All About Market Timing, Second Edition (All About Series)
Use market timing to generate positive returnsâwith lower volatility!
Events of the past decade have proven beyond doubt that buy-and-hold strategies don’t work in bear markets. Market timing, however, is extraordinarily effective in declining marketsâand it provides positive returns in bull markets, as...
The Art of Debugging with GDB, DDD, and Eclipse
Debugging is of central importance to successful software development, and yet many beginning programmers are unaware of the techniques they can use to reduce the time they spend finding and fixing programming errors. GDB, a popular open source debugger, allows a programmer to trace program execution line by line, set breakpoints,...
Modelling Complex Projects (Basic Topics in Psychology) In recent years, the need for help in understanding project behaviour has been exacerbated, as projects have become more complex while time-scales have tightened, adding to project complexity. Project teams however, rarely pay sufficient attention to modelling the behaviour of projects and this can lead to inadequate risk analysis, ineffective...