6 comments

[ 4.8 ms ] story [ 26.5 ms ] thread
Everything in C++ is bonkers. You cannot put everything into a language and expect it to be consistent and safe.
TL;DR: The author writes a snippet of C++ code where he declares variable but not initializes them. Of course any programmer that has started in C knows that such variables will then have unexpected values.

The author recommends us: "initialize your variables."

Then follows a interesting and fun, but not really important, review of the different ways if initialization in C++. And they are bonkers.

It would be unimportant if nobody used C++.

Unfortunately, many languages have gotchas like these, and specifications and tutorials often fail to point them out. For the sake of education they should be shouted loudly. You don't really know a language, and aren't really safe using it, until you understand them.

The specifications, at least the C and C++ specifications, absolutely point these things out.
Exactly, i recall that was one of the first things I read, i think, on the Kerninghan&Ritchie classic book ("The C Programming language").

Also on university they repeated to me exactly the same thing. "Since each variable points to a memory location, you can't be sure of what is inside that memory location, until you initialize the variable".