Re: inheritance, list of objects, polymorphism
In article <0b94a90e-078f-49fc-94c7-74dbe695ba98@k19g2000yqc.googlegroups.com>, James Kanze <james.kanze@gmail.com> wrote:
On Dec 19, 9:05 am, "io_x" <a...@b.c.invalid> wrote:
"James Kanze" <james.ka...@gmail.com> ha scritto nel
messaggionews:d3cde4c3-dd7d-473b-b71d-b82fcef30e26@o28g2000yqh.googlegroups.co
m...
Somehow, I don't think you've understood what is going on.
yes i'm not so smart, but how to use all this?
It's not a question of "smart", it's a question of what you've
learned (or haven't learned). It this case, given your comments
and your code, I suspect that there's a lot of basic C++ and OO
to which you haven't been exposed. Enough that it can't be
addressed in a simple answer here---a good book is in order.
"Good book" defined as?
(I
would suggest Stroustrup's most recent book for starters.
The last time I read a Stroustrup's book, it was about the
worst reading I ever had. Hopefully, he learned something
after more than a generation of experience.
But I doubt he can write a book that is brilliant.
When I talked to him at Ruben Engineering in Cambridge Mass.,
what I saw is a conman in front of me. Because I asked him
about the most appropriate question there is, at least at
that time, and that is:
why did you implement C++ as a C preprocessor?
He said no, it is not a C preprocessor, which is a lie,
because it was. And all the objects were patched during
the link phase in the executable, which is totally off
the wall. But fine. We can understand that considering
the state of the art at the moment.
Now, what IS C++?
Well, nothing more than a wrapper for C.
What are the C++ objects?
Well, nothing more than C structures.
Dig?
So, where is that object oriented magic?
Well, in converting the C++ code into C code essentially,
no matter what "expert" is going to blabber what.
It's
one of the best tutorial texts for "programming" that I've seen
to date:
Poor you.
Have you ever read Osho?
Compared to Stroustrup, it is like listening to angels
sing in heaven.
it doesn't teach C++ as such, it teaches programming,
using C++ as a major tool.)
C++ is lame. No questions about it.
I do agree with Java chief architect on that one.
Unless you know Java, you'll never be able to understand
how screwed up C++ is.
After working in Java for a few years, I can not even go back
to C++ even though my main program is written in C++.
It just rips my eyes to even look at that code.
So ungly the syntax and the whole trip is.
Until you've actually learned about inheritance, abstract base
classes,
Screw those.
What do you need them for?
and how and why they are used, you won't be able to
make sense out of my code.
:--}
why declare all distructors "virtual" ?
Don't listen to all these "experts".
There are some things you are going to learn.
Some of it does make sense, like things of private/protected/
public level. But most of it is just mental masturbation
that does not buy you anything. Their programs still suck.
Because once I've constructed an object, I will only use it
through a pointer to the base class. And deleting an object
through a pointer to the base class is only legal if the
destructor is virtual.
why use all that "const"?
Because these people keep inventing these things that are
in effect meaningless in the scheme of things.
Yes, they will be telling you: oh, but now we can protect
the const and guarantee they are not going to be modified,
and on and on and on.
But the end result of all these great "improvements" is what?
Well, C++ is history.
What we have now is Python, Ruby, PHP, stinky Javascript, CSS,
HTML and things like that, that constitute a majority of what
is happening in the world right now. Const or template or
generics or you name it is nothing more than a mental
masturbation excersize.
What is happening is portability, dynamic scoping and
interpetation versus compilation.
They can design or "improve" anything they want.
Lil does it matter in the scheme of things.
Because I felt like it:-).
Well, at least you are honest in saying it is utterly
meaningless.
Anyway, enough for now.
Seriously, as designed, I expect all of the derived classes to
be immutable, so const correctness says that all of my functions
should be const, and that all of my pointers be const. In some
cases, const correctness is important, but not when all objects
must be allocated on the heap; I could just as easily dropped
all of the const, with no significant difference. What doesn't
work is mixing the two approaches: either everything const
correct, or nothing.
--
Programmer's Goldmine collections:
http://preciseinfo.org
Tens of thousands of code examples and expert discussions on
C++, MFC, VC, ATL, STL, templates, Java, Python, Javascript,
organized by major topics of language, tools, methods, techniques.