C++のことを全然分かってなかった

C++奥が深い! 難しい! 今までだいたいCの延長で決まりきった機能しか使わなかったので、こんなにC++が難しいとは気付かなかった。本を読んだら知らなかったことばかりだ! いや、たぶんどれも一度くらいは目にしているはずだけど、コードを書いたときにたまたまそこに引っかからなかったので記憶に残っていなかったのだろう。まだまだ全然理解が浅い。


継承されたクラスのインスタンスを親クラスの型で扱う時、virtualにしていないメンバ関数は親クラスのメソッドが使われてしまう!
今までほとんど無意識のうちにオーバーライドするメソッドはvirtualにしていたので(なぜそういう習慣が付いたのかは覚えてない)、virtualにしなかったらどうなるかを気にしてなかった。


クラスを生成しただけではstaticのメンバ変数は作られていない!
全然知らなかったぞ、と思ったら自分の書いたコードでもちゃんと生成していた。たぶんどこかのコードをよく分からないまままねして作ったのだろう。


STLのlistやvectorのend()は、最後の要素の次を指す!
今まで全然STLを使ってなくて、end()が最後の要素を指すのだろうと思い込んで時間を使ってしまった。