2013年8月8日木曜日

CとC++で違うところを少々

なんだかC++の話が多めですね、まぁ時代はオブジェクト指向ということで^^
今日はコラム的な話になるので、さらっと読んでみてください。


C++ではCと比べてクラスやオブジェクト以外に様々な機能が拡張されています。
今後も少しずつ紹介していきますので、ぜひ身に付けて入ってください。

人は、日ごろから余程意識しない限り、段々と物事を忘れていってしまいます。
自分で書いたプログラムでも、週末を挟んで月曜になれば、あれっ?何てこともあります(^_^;)
ましてや一ヶ月先、半年も経てば、大分記憶の彼方に飛ばされていってしまうものです。
説明する必要に迫られても思い出すのは至難の技です。

そんなときの助けになるのがコメントです。
どういう意図でその処理にしているのか、ちょっとした説明があるだけで可読性がかなり違います。
また、「今は仕様が未確定で仮実装になっているので、後で直す目印にする」などにも使えます。

コメントの書き方は、Cではコメントにしたい部分を /* と */ で囲みました。
C++では コメントしたい先頭行に //(スラッシュ2つ) を使う方法も追加されています。
もっとも最近のコンパイラでは C でも // が使えたりします。
ちょっとコメントにするときにすごく便利ですね^^
過度のコメントは考えものですが、品質を意識する上では必要不可欠だと思います。

あと、関数プロトタイプ宣言が厳しくなりました。C++では、関数定義の前に関数呼び出しがある
場合に、必ずプロトタイプ宣言をしておかないとコンパイルエラーになってしまいます。
これについてはC, C++どちらでもプロトタイプ宣言はしっかり書くということにしておけば
特に問題ないでしょう。

そして、スゴイところとして取り上げるのが、変数宣言はどこででもできるようになったことです。
Cではローカル変数の宣言を関数の先頭で行っていました。変数宣言を{ } で囲んだブロックの
先頭で行う必要がありました。C++では変数宣言の自由度が高くなり、使う前ならブロック内の
どこでも変数宣言が可能になりました。

どこでも可ということは、使う直前に宣言できるということです。Cでは変数が必要になると関数の
先頭まで戻らないといけませんが、いざ使う場所にスクロールして戻ってくると、あれれっ?という
なんとびっくり、忘れた!なんてことにもなります(-_-;)

こうした無駄な作業も、積もり積もってアウトプットに影響がでてきます。
作業効率もよくなるし、読みやすくなるなら、便利な機能はどんどん使っていきたいですね^^

そして最後に、C++では定数を宣言するときの const がパワーアップしています。
次回以降でみていきますが、C++ではアクセス制限をより強く意識しているため
const が随所に出てきます。constを使いこなして良いプログラムが書けるようになりましょう^^



今日の名言
もし、からし種一粒ほどの信仰があるなら、この山に向かって「ここからあそこに移れ」と言えば、
移るであろう。このように、あなたにできないことは何もないであろう。
                                  「マタイによる福音書」第17章

最大の名誉は決して倒れないことではない。倒れるたびに起き上がることである。
                                  孔子

目標をあくまで貫くことは、気概あるものの精神をがっちりと支える筋金の一本であり、成功の
最大の条件である。これがなければ、いかなる天才でも方針を失い、ただやたらにエネルギーを
浪費するだけである。
                                  チェスターフィールド卿