More of an opinion question, what do you think are the most important
and/or complex concepts of C++?
A couple things come to mind IMO
- Inheritance
- Data Abstraction / Encapsulation
- Pointers / Double Pointers / Function Pointers
- Any particular structures (maps, lists, trees, STL)
Depends on the level you are looking. I wouldn't lump in Inheritance,
Data Abstraction/Encapsulation, or things of that nature with "C++
concepts", but would place them under a heading of "Object Orientated
Programming" if I was writing degree outlines.
I would however, be certain that students knew how C++ implements
those concepts.
One things I always hated about how I learned (or verified I knew) C++
in school, was that there was no mention of the things we use most on
the job:
STL
Data structures and their use
Iterators
IOStreams
Lets go beyond "cin gets text" "cout displays it"
Talk about all streams, the hierarchy, their use, deriving from
them, their design, error handling
Pointers and References
All students I tutored had trouble with pointers and references,
but I blame the instructors for their very poor explanations.
I never had trouble with it, understanding it anyway.
Virtual Inheritance and how to use
No one said a word in school.
Process of creating an application
Explain how text gets translated to objects, linked, and how
machine code is created and executed.
Libraries and linking (I don't know how many times I've been asked
what "undefined reference" means.