C++によるプログラミング入門27
プログラミングの夜

 こんにちは。「講座」は前回で終わりました。今回はお話です。

 この「C++入門」の元になったページは、1996年10月1日から1997年3月30日までに書いたものです。当時、「プログラミング解説のホームページ」は、有名なものもありましたが、それほど数は多くなく、幸い、そこそこにご好評をいただいたようで、一生懸命書いていた当時が懐かしいです。
 今ご覧になっている「C++入門」は、その「旧C++入門」を2003年の6月から書き直したものです。今では、「プログラミング解説のホームページ」も百花繚乱の様相で、今更という気もしていたのですが、なにしろ、元があるんだし、簡単だと思っていたのです。しかし、大変でした。さらに、仕事の都合、大きな中断もあり、完成は2005年1月になってしまいました。
 この章の題名が「プログラミングの夜」というのは、私は夜元気になるタイプだったからです。自分のためのプログラムはだいたい夜書いていました。HPもそうです。しかし、最近は、めっきり夜起きていられなくなりました。それも、更新が遅れた理由のひとつです。

 最近になって、 「更新待ってたのに」という励ましやお叱り(?)のメールをいただくにつけ、うれしい気持ち、申し訳ない気持ちが交錯します。

  みなさま、ありがとうございます。

 今回、書き直してみて、「あ、俺、こんなこと書いてたのか?」と思うことしきりでした。


旧C++入門の最後に書いた文を(抜粋し、手直ししたもの^^;)再掲します。

 プログラミング言語の学習は外国語の学習によく似ていると思います。実際、プログラミングの教育には、文法をマスターさせてから、「会話」の授業にはいるようなものもあるでしょう。しかし、一方で、私のように「会話」からはじめてほしいという人向きのコースがあってもよいと思うのです。
 このHPの「入門講座」は「会話」からはいる入門です。(コンピュータとの会話です。)そのような方法でやれば、文法や語彙の勉強まで手が回らないのも事実です。「会話」の教科書に全てを書いたら、読む気の起きないもの(というか書く気のおきないもの^^;)に、なってしまうからです。
 メールをくださる人の中には私のHPのみで勉強しているという人もいます。それは大変光栄です。でも、もし、もっとよく勉強したいのなら、やはり、網羅的な教科書も読んでみてください。
 何を書き残したか、思いつくままに書くと、例えば、「参照、デフォルトの引数、オーバーロード、const、static、protected、friend、テンプレート、例外処理」なんかでしょうか。

 「オブジェクト指向性」がC++の大きな目玉であることは事実だと思います。オブジェクト指向型のプログラミングは例えば次のように行われるといわれています。

 1.クラスを考える
 2.そのクラスのデータとメンバ関数を考える
 3.クラス間の関係を考える
 4.クラス間の関係を整理する(継承や仮想関数が使えれば使う)

もちろん、このような作業が繰り返し行われるわけです。

 オブジェクト指向プログラミングが常に有効であるわけではもちろんありません。オブジェクト指向が役に立つのは似て非なるデータが数多く現れるときです。もちろん、何を「データ」とするかで違ってくる話ですが。
 ところで、「データ抽象」は「オブジェクト指向」の入り口にありますが、それだけで独立した概念です。私は「データ抽象」だけでも「宝」だと思うのです。もちろん、継承、仮想関数が使えるところはどんどん使うべきですが、まず、出発点として、「データ抽象」を考えるとよいと思うのです。

再掲終わり...


 上に書いた「書き残し」について補足すると、最近特に充実してきた「ライブラリの学習」も入ると思います。また、テンプレートも重要です。(const、テンプレート、演算子のオーバーロードについては、補足で解説します。)さらに、プログラミング言語だけでなく、ソフトウェア開発全体に対する理解も必要だと思います。

 それでは、みなさん、またインターネット上でお会いしましょう!


目次のページ
前のページ