C++ Highest Concepts

T

Travis

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)
 
C

Christopher

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.
 
M

Maic Schmidt

IMO:
- class & function templates.

I don't know another language with a similar concept.
 
G

gmlr

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)

Everything if it's there is important, but templates gave a new impulse/
perspective to the language.

IMHO...
 
J

Jon Harrop

Travis said:
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)

.. Debugging.

.. Working around the absence of modern language features, e.g. GC,
first-class functions, pattern matching over algebraic data types etc.

.. Trying to find a compiler that doesn't crash and/or is standards
compliant.
 
C

Christopher

. Debugging.

I think everyone should have attended a debugging seminar. Most people
don't learn how until the first two years on the job. Agree 100%, most
overlooked aspect of learning to program in C++
. Working around the absence of modern language features, e.g. GC,
first-class functions, pattern matching over algebraic data types etc.

Work around not having GC? I don't think that's something that needs
to be worked around at all. The only purpose I've ever seen for it, is
to aid bug prone developers who shouldn't be coding in the first
place. It bogs things down and adds more complexity by trying to
control when it starts working and what it can and can't release when.
I hate GC. It also took away all the low level control from some APIs
that used to provide it.

Now if you mean everyone should learn to manage memory, well, that is
indeed true.

. Trying to find a compiler that doesn't crash and/or is standards
compliant.

Not all that hard. Most people need to be aware of what standard
compliance is though.
 
J

Jon Harrop

Christopher said:
Work around not having GC? I don't think that's something that needs
to be worked around at all. The only purpose I've ever seen for it, is
to aid bug prone developers who shouldn't be coding in the first
place. It bogs things down and adds more complexity by trying to
control when it starts working and what it can and can't release when.
I hate GC.

If your program is manipulating graphs (e.g. computer algebra software,
compilers and various forms of scientific computing) then you need a
garbage collector. If you don't have one then you must write one of your
own.

In that sense, a GC is just like any other library. It provides useful
functionality that is difficult to write yourself otherwise. In the context
of concurrency, it is almost impossible to write yourself.

You might as well say "I hate graphics libraries".
Not all that hard.

We ditched C++ many years ago but, at that time, I tried five compilers
(GNU, Borland, MS, SGI and Intel) and none worked reliably. Intel's was the
most robust but it still had some serious problems...
 
M

Matthias Buelow

Travis said:
More of an opinion question, what do you think are the most important
and/or complex concepts of C++?

A nearly perfected minimization of programmer productivity. This is
really where C++ shines.
 

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Members online

Forum statistics

Threads
474,176
Messages
2,570,950
Members
47,500
Latest member
ArianneJsb

Latest Threads

Top