New C + + programmers should complete the "basic" category knowledge point within one year, complete learning "advance" category knowledge point within two years, complete learning "expert" in 3-4 years
1. Basic (Basic)
(1) Variables and basic types: (2) typedef and # define;
(3) Values and pointers: array definition and initialization, multidimensional numeric values, pointer manipulation;
(4) Expression: arithmetic/logic calculation, bit operation, priority, type conversion;
(5) Statement: simple statement, Declaration/definition statement, compound statement, conditional/circular control statement, exception handling statement;
(6) Functions: function declaration, parameter passing, stack concept, function overloading;
(7) Standard IO: Condition state, buffer, file stream, character stream, localization;
(8) class and data abstraction: definitions and declarations of classes, constructors of classes, static members, copy constructors, operator overloading, type conversions;
(9) Object-oriented Programming: data (Encapsulation) abstraction, inheritance, polymorphism (dynamic binding);
2, Advanced (Advance)
(1) Template and generic programming: template definition, instantiation, class template members, overloading, special;
(2) Smart pointers: auto_ptr, shared_ptr, scoped_ptr;
(3) STL Containers: sequential containers (vector, list, deque, queue, Priority_queue, string) and off
Linked containers (map, set, Multimap, multiset);
(4) STL algorithm: iterator, algorithm;
(5) Commonly used complex data structure: HASH_MAP, Boost.any, boost. Array, boost. Regex, boost. Variant
Boost. Multi_array, boost. Pointer_container;
3. Advanced (Expert)
(1) Advanced generic programming: expression template, template meta-programming, Concept programming;
(2) Program architecture, memory pool, thread pool;
(3) Advanced abstraction: Boost.mpl, Boost.lambda, Boost.fusion, Boost.proto;
(4) Paradigm application: Boost.spirit;
(5) Application library: Boost.asio, Boost.graph, blitz++, Loki, Cgal, Ublas;
I am "advanced" stage, you can see, the road slowly AH!!!
C + + Prerequisite knowledge