2015年12月27日日曜日

C++ 再学習(2)


「C++のエッセンス」という本で、C++を学習しなおしています。

「第2章ユーザ定義型」「第3章モジュール性」「第4章クラス」「第14章歴史と互換性」を読みました。

自分がC++を使う場面というのは、仕事で、メモリ制約の多い組込み機器のソフトウェア開発を行うときです。
そこでは、「better C」的に使っているだけで、ちょっと「開発言語はC++です」というのはおこがましいような使い方をしています。

ということで、興味があるのは14章のC言語との関係でしたが、やはり「C++を、いくつかの機能が追加されたC言語と考えないように。」と釘を刺されていました。

「配列ではなくコンテナを」という点も、ヒープを使うのに抵抗を感じるような環境では、なかなか難しいと感じるあたり、組込みソフトウェアの特殊性というのを再認識しました。

また、コピーコンストラクタやオブジェクトの代入は危険で避けていたのですが、プログラマが気をつけるだけでなく、コンパイラに検出してもらう方法が参考になりました(deleteをはじめ、default、override、explicitなど、今まで使っていませんでした)。

「C++プログラマが何年間も見落とすことが多いのは、新機能ではなく、むしろ、機能間の関係の強化、基礎的な新しいプログラミングテクニックを実現可能にするための機能間の関係である。換言すると、初めてC++を学習した際に思いもよらなかったことや、当時は実現不可能と考えたことが、現在は優れた方式となっている可能性があるのだ。それを見つけるには、基本をもう一度吟味するしかない。」

↑ははー、そのとおりでございます。

0 件のコメント:

コメントを投稿