†C++はC言語にクラス・テンプレート・例外処理などを加えたものです。いうわけで、Cをある程度理解してから勉強してからでないと、なんのこったかワカランと思うのであります。C++の勉強する前に、コーヒーブレイクとして、お勧めするサイトがあるのだ。「パソコン初心者の館」の『Cプログラミング診断室』である。大笑いしながら見るのも一興、青ざめながら見るのもまた一興。†C++:for文の初期化部分で宣言可能、かつ、スコープはループ内(注)(注)VC2003の場合、"言語拡張"オプションで変更可能、かつ、デフォルトでは、スコープはループ内に収まらないので注意。†まずは簡単なプログラムの説明をします。以下のコードは画面に文字の表示をするプログラムでしょう。main()//メイン関数。0;//システムに0を返す。Hello,Workと書いてあるところを他の文字列にして試してみてください。他の文字列を表示することができます。†C++はクラス単位でプログラミングを行う言語です。クラスは変数や関数を一まとめにしたものです。プログラムの変更をしたいときその変更を最小限に抑えるためです。上の文字表示プログラムをクラスを使って書いて見ましょう。(*注意:実際に文字を表示するだけの小さなものをクラスにまとめるのは馬鹿のすることです。0;}これで画面に表示できます。次にこれの説明をします。先ほどの上のプログラムをコンパイルするとHello,Workが表示されると思います。そのプログラムの詳細を示して行きたいと思います。#include<iostream>この部分はiostreamというファイルを取り込みます。することでいろいろな関数を使えるようになります。*);//PrintCharactorというクラスにPutCharという関数がありますよということを示す};この部分はPrintCharactorというクラスを宣言します。public:というのはこれをつけることで外からもアクセスできますということを示します。これがないと外からアクセスできません。0;}この部分はメイン関数です。a;はPrintCharactorクラスをaという名前で作ります。a.PutChar("Hello,Work");この部分はaという名前で宣言されたクラスのPutcharという関数を呼びます。これによって文字が表示できます。同じ名前で中身の違う関数を複数定義できます。関数をオーバーロードするには、関数の呼び出し時に関数が区別できないと、つまり関数の引数の型が違わないとだめです。f()+a+b+c;}ただし、無闇に多くの関数をオーバーロードすると乱雑になりやすいので注意しましょう。演算子の機能を、関数としてプログラマが定義できます。これは、自前で定義したクラスの演算を分かりやすくしたい時などに便利です。演算子のオーバーロードをするには、キーワードoperatorを使います。std::endl;}};こんな感じだね。初心者サイトに載ってる例は。これだと、どんなメリットがあるのか良くわかんないんだよね。0;}実行例c:\>Sample悪が栄えた試しなし!イー!やっておしまい!ちなみに、こんなことはしちゃだめね。0;}listはSTLに含まれるコンテナで、すさまじく簡単に言ってしまえば動的な配列の一つ。{{br}}iteratorはコンテナにアクセスするためのもので、ポインタみたいに使える。実行例c:\>Sampleセリフが無いんじゃよセリフが無いんじゃよセリフが無いんじゃよ動的生成すると、ちゃんと動作するんだけど、メモリリーク対策が面倒くさい。この例ではたった3行だけどね。0;}実行例c:\>Sample悪が栄えた試しなし!イー!やっておしまい!そしてメモリリーク対策としてスマートポインタ(boostライブラリのshared_ptr)を導入してみる。0;}実行例c:\>Sample悪が栄えた試しなし!イー!やっておしまい!で、こーなってくると、動的生成部分がもーちょっとなんとかならんかなーて思うんだよね。戻り値がCharacter*な関数があれば、いろいろ便利になる。