* 目次 [#h365204b]
#contents

* 準備 [#i0802fe8]
\(^o^)/よう!~
俺だよ俺!~

ここでは、俺でもわかるレベルでC++プログラミングの初歩を教えるんだぜ!~
完読すれば、大学の宿題程度なら自分の力でできるようになるんじゃねぇかな。~
保障はしないけどな!

** 始めるにあたって [#z2888bc2]
\(^o^)/C++に限らないけど、プログラムの勉強するときは以下の事を心がけてくれよな!~
- ソースは読むだけじゃなく書け!
- 書いたソースは必ず実行確認しろ!

** 環境を整える [#y949c1f4]
\(^o^)/C++のコンパイラは色々とあるんだけど、~
とりあえずWindowsでお手軽にやりたいなら
[[Microsoft Visual Studio 2005 Express Edition:http://www.microsoft.com/japan/msdn/vstudio/express/visualc/]]
をインストールするんだぜ。~
これなら、C++にこなれてきた頃にWindowsGUIアプリケーションの開発もできるようになるしな!~

ちなみにインストールまでがめちゃくちゃめんどいから気長にがんばれよ!

* はじめの一歩 [#q4e80a3d]
\(^o^)/それでは最初に簡単なプログラムを作ってみるぞ!~
VisualC++(以下VC)でプログラムする基本的な手順をここでマスターするんだぜ。~

** プロジェクトの作成 [#v8dfa8ef]
\(^o^)/VCを起動して、以下の手順で「hello」プロジェクトを作ってみるんだぜ。~
+ [ファイル]→[新規作成]→[プロジェクト]を選択
+ 新しいプロジェクトダイアログが表示される
+ [プロジェクトの種類]の[Win32]を選択
+ [テンプレート]に[Win32 コンソール アプリケーション]が指定されている事を確認
+ [プロジェクト名]に「hello」って入力
+ [OK]ボタンを押下

できたか?~
これはWindowsのコンソール(コマンドプロンプト)で動くアプリケーションを作るときの手順だから、~
とりあえずおまじない的に覚えておいてくれよな!

** ソースファイルの作成 [#ib9cf043]
\(^o^)/VisualStudioの左側に、~
ソリューションエクスプローラーっていうウィンドウが表示されたか?~
エクスプローラーみたいなやつな。~
ここに、今度はソース(プログラム)ファイルを作ってみるんだぜ。~
+ [ソリューション エクスプローラ]の[hello]ノードを開く
+[ソースファイル]ノードを右クリック
+[追加]→[新しい項目]を選択
+[新しい項目の追加 - hello]ダイアログが表示される
+[カテゴリ]の[VIsual C++]→[コード]を選択
+[テンプレート]の[C++ ファイル(cpp)]が選択されていることを確認
+[ファイル名]に[main]って入力
+[追加]ボタンを押下

手順ってのは文章にするとやたらとめんどくさそうに見えるよな!~
実際はたいしたことやってないから、~
何回かやってみて体で覚えてほしいんだぜ。

** Hello world! [#t5f77bbb]
\(^o^)/いよいよプログラムだぜ!~
ここまでの手順で、main.cppっていうテキストエディタが表示されているよな?~
ここに、以下のプログラムを打ち込んでみるんだぜ。~

''コーディング''~

 #include <iostream>
 using namespace std;
 int main()
 {
   cout << "Hello world!" << endl;
 }

できたか?~
これがいわゆるC++のソースコードなんだぜ。~
何をやってるかは追い追い説明するから、~
今は手順通りに進んでくれよな!~

次は、このソースから実行ファイル(EXE)を作るための、~
「ビルド」をやってみるぞ。

''ビルド''

キーボードの「F7」を押すとビルドが開始されて、~
VisualStudioの下の方に「出力」っていうウィンドウが表示されるよな。~
ここの一番最後の行に、~
 ========== ビルド: 0 正常終了、0 失敗、1 更新、0 スキップ ==========
こんなのが表示されてたら、ビルド成功なんだぜ。~
もし、失敗が0じゃない時はソースのどっかがおかしいはずだから、~
間違いを直してもう一回ビルドするんだぜ。

''実行''

最後に、ビルドしたプログラムを実際に実行してみるんだぜ。~
キーボードの「F5」を押すと、黒くて四角い何かがちらっと表示されるよな。~
これがコンソールアプリの実行結果なんだぜ。
早くて見えないだろ?これ、コンソールアプリの実行結果なんだぜ。

** 見えないのをなんとかする [#y3c598e9]
\(^o^)/コンソールアプリを実行したら、~
黒い四角がちらっと表示されてオワタよな。~
これは何かというと、さっきの一瞬でプログラムが実行されて、~
そして終了しちゃったってことなんだぜ。~

これじゃ何やってるのかちっともわからないよな。~
なので、ソースをちょっと修正して、~
終了する前にちょっと待っててもらうようにしてみるんだぜ。~

 #include <iostream>
 #include <conio.h>  // 追加
 using namespace std;
 int main()
 {
   cout << "Hello world!" << endl;
   _getch(); // 追加
 }

修正したソースをビルドして実行すると、~
今度は黒くて四角て、「Hello world!」って書かれたコンソールが表示されてるはずなんだぜ。~
何かキーを押すと終了するから、~
とりあえずEnterでも押して消しておいてくれよな!

** ソースの説明 [#wb863f24]
\(^o^)/それでは、さっきスルーしたソースの説明をしてみるんだぜ。~

 #include <iostream>

ここでは「iostream」というC++標準クラスライブラリを、~
hello.cppから使えるようにするための宣言をしてるんだぜ。~
iostreamっていうのは、コンソールに文字を表示するのに必要なんだぜ。

 #include <conio.h>

さっき追加した「何か押すまで待つ処理」を実装するために、~
C標準ライブラリのconio.hをインクルードしてるんだぜ。

 using namespace std;

C++標準クラスライブラリをバリバリ使うよ~っていう宣言なんだぜ。~
下で説明するんだぜ。

 int main()

「main」っていう関数(一連の処理)を宣言してるんだぜ。~
コンソールアプリでは、この関数が一番最初に実行されるんだぜ。

 {

「ここからmain関数始めるよ」という目印だぜ。

   cout << "Hello world!" << endl;

「Hello world!」をコンソールに出力してるんだぜ。~
もう少しkwsk書くと、~
cout(標準出力)に、「Hello world!」を出力して、~
さらにendl(改行)を出力してるんだぜ。

ちなみに、上で説明した「using namespace std;」を省略すると、~
std::cout << "Hello world!" << std::endl;~
っていうふうに、「std::」を付けて書かなくちゃいけないんだぜ。

   _getch();

これは、キーが押されるまで待っててくれる関数なんだぜ。~
こ難しく説明すると、~
標準入力から1文字受け取るまで待機する関数なんだぜ。

 }

main関数はここまでっていう目印なんだぜ。