I
I
Ilya2017-09-09 01:01:04
C++ / C#
Ilya, 2017-09-09 01:01:04

What literature do you know about C++ internals?

At the moment, fate decreed that from a Python developer I suddenly retrained into a C ++ developer, and I have to comprehend its intricacies already in the process of work.
Over the past few months, I have already read several books on C ++, but the feeling of a normal understanding of the pluses did not come. Now I’m reading Stroustrup, and he’s increasingly slipping into banal architecture and OOP, not really explaining why and how this or that syntax works, but simply putting before the fact how to do it, after which I have a feeling of not understanding what is really happening . Moreover, he strenuously avoids describing the internals, referring to "systems where there are no files" and inserting in each paragraph "this is all, of course, implementation dependent." I understand that he only describes the abstract language itself, trying to show how it can be used and how it should simplify development and design, but I want a little more detail, to be honest.
Of course, there is a lot of all kinds of information on the Internet, and from what looks like the truth, I can remember this www.avabodh.com/cxxin/cxx.html , and of course a bunch of answers to similar questions on SO, but I would like a normal book that would have more - information about the internals of C ++ is less systematic.
Of similar books, I have so far only come across Lipman's "Inside the C ++ Object Model", but so far my hands have not gotten to it, and it's embarrassing that it has not been translated, and this is at least + 50% of reading time.
Actually the question itself: who else knows the literature (articles, after all), which would explain in sufficient detail how C ++ really works?
Or for really detailed information already only to the documentation of specific compilers?

Answer the question

In order to leave comments, you need to log in

2 answer(s)
S
SolidMinus, 2017-09-09
@766dt

I advise you to read books on operating networks. All the same pluses - the compiled language. With full pointer support. And learn at least a little assembly language. Then reverse your applications (most importantly, simple, so as not to drown in the asma listing). Then there will be an understanding that C ++ is essentially a kind of syntactic sugar for machine code, and an understanding of everything that happens there, with the exception of the compilation process, will come. In any case, that's how it was for me.
There are no more questions about pointers, at all. When you see how, with the CRT code disabled, classes unfold into the purest procedural assembler listing, you start to wonder how simple everything is in this OOP idea. Just wrap up those pointless procedure calls into something prettier.
PS Without CRT code, your C/C++ code just compiles to what you wrote. There is not a single foreign line of code. You just see what the code is compiled into and understand that all compiled languages ​​are just a simplification of life, and not the invention of something new. All these paradigms are still reduced to assembly language, whatever they are. Actually, interpreted languages ​​are just assembly code that analyzes text and, depending on what is written there, performs some actions.
But there is also a minus. There will be a complete misunderstanding of interpreted languages ​​in terms of working with memory. You will think already in the context of pointers. I sometimes really stupidly stupid, it would seem, on the simple elements of the Python language.

R
res2001, 2017-09-09
@res2001

First of all, it is worth understanding how C works: dynamic memory, pointers, arrays, strings, structures and arrays of structures, pointers to them, address arithmetic. This is the base.
Put OOP on this base. At one time, C++ began as a set of macros for C.
This will make it easier to understand how the classes are organized inside.

Didn't find what you were looking for?

Ask your question

Ask a Question

731 491 924 answers to any question