Advanced C++ for Experts - Design Patterns, STL, C++11/C++14 Training in Boynton Beach
 
                    Enroll in or hire us to teach our Advanced C++ for Experts - Design Patterns, STL, C++11/C++14 class in Boynton Beach,  Florida by calling us @303.377.6176.  Like all HSG
                    classes, Advanced C++ for Experts - Design Patterns, STL, C++11/C++14 may be offered either onsite or via instructor led virtual training.  Consider looking at our public training schedule to see if it
                    is scheduled:  Public Training Classes
                    
                
                        Provided there are enough attendees, Advanced C++ for Experts - Design Patterns, STL, C++11/C++14 may be taught at one of our local training facilities.  
                    
                    | 
                 
                	 We offer private customized training for groups of 3 or more attendees.
                 
                	 | 
                ||
Course Description | 
                ||
|  This 2-day intensive Advanced C++ class is designed to coach the experienced C++ developer on enterprise system C++ coding and design standards.  Students will be given a review of Polymorphism, Virtual Functions, Function Pointers and Multiple Inheritance.  A solid introduction to Design Patterns follows.  Once we have laid the groundwork, the training nicely dovetails into a thorough introduction to the STL and new topics in C++11/C++14. 
                        Course Length: 2 Days 
                    Course Tuition: $1890 (US)  | 
                ||
		                
		                Prerequisites | 
		                |
| Solid understanding of Object Oriented programming with a minimum of 2 years of C++ development experience. | |
                    
                    Course Outline | 
                
| 
                     
	Review 
	Templates 
	Function Templates 
	Class Templates 
	Function Objects 
	Design Pattern Overview 
	Objectives in Software Design/Module Design 
	Overview of Patterns 
	Qualities of a Pattern 
	Pattern Systems 
	Heuristics vs. Patterns 
		Principles of Object-Oriented Design 
	
		Overview of Principles 
	
		Single-Responsibility Principle (SRP) 
	
		Open-Closed Principle (OCP) 
	
		Tell vs. Ask 
	
		Command/Query Separation (CQS) 
	
		Composed Method 
	
		Combined Method 
	
		Liskov Substitution Principle (LSP) 
	
		Dependency Inversion Principle (DIP) 
	
		Interface Segregation Principle (ISP) 
	
		Law of Demeter 
	
		Catalog of GoF Patterns 
	
		Overview of GoF Patterns 
	
		Introduction to Creation Patterns 
	
		Factory Method 
	
		Abstract Factory 
	
		Builder 
	
		Prototype 
	
		Singleton 
	
		Introduction to Structural Patterns 
	
		Adapter 
	
		Decorator 
	
		Proxy 
	
		Facade 
	
		Composite 
	
		Flyweight 
	
		Bridge 
	
		Summary of Structural Patterns 
	
		Introduction to Behavioral Patterns 
	
		Chain of Responsibility 
	
		Iterator 
	
		Strategy 
	
		Template Method 
	
		Mediator 
	
		Observer 
	
		Memento 
	
		Command 
	
		State 
	
		Visitor 
	
		Interpreter 
	
		 Other Micro-Architecture and System Patterns 
	
		Object Pool 
	
		Worker Thread 
	
		Dynamic Linkage 
	
		Cache Management 
	
		Type Object 
	
		Extension Object 
	
		Smart Pointer (C++) 
	
		Session 
	
		Transaction 
		Advanced Polymorphism and Inheritance 
	
		Good Class Design 
	
		String Class 
	
		Public Inheritance 
	
		Public Inheritance Problems 
	
		Inheritance and Semantics 
	
		Private Inheritance 
	
		Composition 
	
		Composition vs. Private Inheritance 
	
		Templates vs. Inheritance 
	
		Protected Inheritance 
	
		Implementation Encapsulation 
	
		Interface Inheritance 
	
		Runtime Type Information 
	
		Runtime Type and Polymorphism 
	
		type_info Class 
	
		typeid Operator 
	
		Compiler Options 
	
		Safe Pointer Conversions 
	
		Dynamic Cast 
	
		New C++ Style Casts 
	
		Static Cast 
	
		Reinterpret Cast 
	
		Const Cast 
	
		Inheritance Hierarchies and Multiple Inheritance 
	
		Class Hierarchy in Smalltalk 
	
		Smalltalk Class Hierarchy (Simplified) 
	
		Collection Classers 
	
		Multiple Inheritance Solution 
	
		Basic Derivation 
	
		Ambiguities in Multiple Inheritance 
	
		Resolving Ambiguity 
	
		Duplicate Subobjects 
	
		Virtual Base Classes 
	
		An Overview of Templates 
	
		Templates 
	
		Overloading Functions 
	
		Template Functions 
	
		Specializing a Template Function 
	
		Disambiguation under Specialization 
	
		Template Classes 
	
		An Array Template Class 
	
		Instantiating a Template Class Object 
	
		Friends of Template Classes 
	
		Templates with Multiple Type Parameters 
	
		Non Class-type Parameters for Template Classes 
	
		Comments Regarding Templates 
	
		Templates and Inheritance 
	
		Overview of STL 
	
		Perspective 
	
		History and Evolution 
	
		New Features 
	
		The Standard Template Library 
	
		Generic Programming 
	
		Design Goals 
	
		Header Files 
	
		STL Components 
	
		Containers 
	
		Algorithms 
	
		Iterators 
	
		Compiling STL Code 
	
		Examples from STL 
	
		vector 
	
		Vector.cpp 
	
		list 
	
		List.cpp 
	
		map 
	
		Map.cpp 
	
		set 
	
		Set.cpp 
	
		multiset 
	
		Multiset.cpp 
	
		find 
	
		FindVector.cpp 
	
		find list 
	
		merge 
	
		Overriding the Default Comparison 
	
		Iterators 
	
		Iterators.cpp 
	
		Functions 
	
		Functions.cpp 
	
		Function Objects 
	
		FunctionObject.cpp 
	
		STL Containers 
	
		Vectors 
	
		Vector.cpp 
	
		Vector Operations 
	
		Typedefs 
	
		Deques 
	
		deque as Stack 
	
		deque Functionality 
	
		Lists 
	
		Generic Programming 
	
		Tradeoff with Lists 
	
		List Memory Allocation 
	
		list Functionality 
	
		Associate Containers 
	
		Sets 
	
		Sets with User Defined Objects 
	
		Multisets (Bags) 
	
		Maps 
	
		Multimaps 
	
		STL Iterators 
	
		Pointers 
	
		Template Version 
	
		String Version 
	
		A Generalization of Pointers 
	
		STL Iterators 
	
		Input Iterators 
	
		Output Iterators 
	
		Forward Iterators 
	
		Bidirectional Iterators 
	
		Random Access Iterators 
	
		C++11/C++14 Highlights 
	
		Range-based for-loops 
	
		RValues and move semantics 
	
		Initializer lists 
	
		Variadic Templates 
	
		Lambda Foundations 
	
		Generic lambdas 
	
		Extended capture 
	
		Lambda Iterator concept 
	
		Lambda Containers 
	
		Lambda Functions 
 | 
                
Course Directory [training on all levels]
Technical Training Courses
                                Software engineer/architect, System Admin ... Welcome!
                            - .NET Classes
 - Agile/Scrum Classes
 - AI Classes
 - Ajax Classes
 - Android and iPhone Programming Classes
 - Azure Classes
 - Blaze Advisor Classes
 - C Programming Classes
 - C# Programming Classes
 - C++ Programming Classes
 - Cisco Classes
 - Cloud Classes
 - CompTIA Classes
 - Crystal Reports Classes
 - Data Classes
 - Design Patterns Classes
 - DevOps Classes
 - Foundations of Web Design & Web Authoring Classes
 - Git, Jira, Wicket, Gradle, Tableau Classes
 - IBM Classes
 - Java Programming Classes
 - JBoss Administration Classes
 - JUnit, TDD, CPTC, Web Penetration Classes
 
- Linux Unix Classes
 - Machine Learning Classes
 - Microsoft Classes
 - Microsoft Development Classes
 - Microsoft SQL Server Classes
 - Microsoft Team Foundation Server Classes
 - Microsoft Windows Server Classes
 - Oracle, MySQL, Cassandra, Hadoop Database Classes
 - Perl Programming Classes
 - Python Programming Classes
 - Ruby Programming Classes
 - SAS Classes
 - Security Classes
 - SharePoint Classes
 - SOA Classes
 - Tcl, Awk, Bash, Shell Classes
 - UML Classes
 - VMWare Classes
 - Web Development Classes
 - Web Services Classes
 - Weblogic Administration Classes
 - XML Classes
 
Business Training Courses
                                Project Managers, Business Analysts, Paralegals ... Welcome!
                            Upcoming Classes
                    Gain insight and ideas from students with different perspectives and experiences.
                    - RHCSA EXAM PREP 
17 November, 2025 - 21 November, 2025 - Fast Track to Java 17 and OO Development 
8 December, 2025 - 12 December, 2025 - Introduction to Spring 6, Spring Boot 3, and Spring REST 
15 December, 2025 - 19 December, 2025 - RED HAT ENTERPRISE LINUX SYSTEMS ADMIN II 
8 December, 2025 - 11 December, 2025 - ASP.NET Core MVC (VS2022) 
24 November, 2025 - 25 November, 2025 - See our complete public course listing 
 
C++ Programming Uses & Stats
C++ Programming is Used For:
	            			Software Development 
	            			Search Engines
	            			Operating Systems
	            			Video Games
	            		| 
	            				 Difficulty 
	            				
	            			 | 
	            			
	            				 Popularity 
	            				
	            			 | 
	            			Year Created  1983 | 
	            			
| 
	            				 Pros 
	            				
	Popular:  
	C/C++ is everywhere. In particular, they power more technologies than we give it credit for. 
	Flexible: 
	C++ is a multi-paradigm coding language. This means that it supports other styles such as procedural programming as well as Object-Oriented Programming.  
	Fast:  
	Because it is compiled, C++ gains a lot of speed. and is the language of choice for some applications as an example in the finance industry, where small differences in speed in high-frequency trading platforms can make the difference between a profit or a loss. 
	Job Opportunities:  
	C++ developers are high in demand. There are over 14,000 C++ open positions on linkedIn alone.  
	Similarity to Other Languages:  
	Many other languages like C, C#, and Java have very similar syntax to C++, making them easy to learn for those that already know C++. 
 | 
	            			
	            				 Cons 
	            				
	Difficult to Learn:   
	C++ syntax is complex and the standard library is small, making C++ difficult to learn for someone with little programming experience. Although, it's believed to be more difficult to learn C++ than other languages, more accurately it probably takes a bigger investment of your time and effort to learn than some other languages.  
	Strict Syntax:  
	There is not much flexibility to the syntax, so it can be difficult to write code in a readable way. 
	Little Memory Management: 
	C++ does very little memory management, forcing the programmer to do most of it themselves. 
	Debugging Issues: 
	C++ can be difficult and complex to debug when it is used for web applications.  
 | 
	            			
| C++ Programming Job Market | 
	            				 
	            				Average Salary 
	            				 | 
	            			
	            				 
	            				Job Count 
	            				 | 
	            			
	            				 
	            				Top Job Locations 
	            				
	New York City   | 
	            			
| 
	            					Complimentary Skills to have along with C++ Programming
	            					 C/C++ are the grandfather of most other languages. Once you understand C syntax and (OOP) Object Oriented Programming, you're well on your way to greener pastures. Since the .NET development ecosystem spans a wide array of capabilities and tools, it is difficult for .NET developers to know which .NET development skills and training to pursue in order to increase their marketability — and earning potential. For that reason, learning supplemental languages such as Java, JavaScript, Python, C/C++, and others is expected in today’s competitive skill-set driven playing field.  | 
	            			

	            				
	            				
	            				




