https://youtu.be/gpaAgWnLVSs

\textcolor{pink}{四国めたん: }教師役ですわ

\textcolor{lime}{ずんだもん: }生徒役なのだ
\footnotesize \textcolor{pink}{四国めたん:} こんにちは。四国めたんです
\footnotesize \textcolor{lime}{ずんだもん:} ずんだもんなのだ。こんにちはなのだ
\footnotesize \textcolor{pink}{四国めたん:} 今回から皆さんと一緒に、C++言語によるプログラミングを勉強していくわよ
\footnotesize \textcolor{pink}{四国めたん:} 初心者でもわかるように簡単な説明とするつもりですわ
\footnotesize \textcolor{pink}{四国めたん:} 最初はプログラミングに関する用語など、わからない言葉も出るかもしれないわね
\footnotesize \textcolor{lime}{ずんだもん:} わからない言葉はあとで説明するので、今はスルーしていいのだ
\footnotesize \textcolor{pink}{四国めたん:} 第1回は "Hello World!!"の表示 を行いますわ
\footnotesize \textcolor{lime}{ずんだもん:} プログラマーなら必ず通るみちなのだ
ようやくC++ですか?
\footnotesize \textcolor{pink}{四国めたん:} 【C言語超入門】では、超初心者向けにC言語でのプログラムの書き方の基本を解説してきましたわ
\footnotesize \textcolor{lime}{ずんだもん:} けっこう、長かったのだ
\footnotesize \textcolor{pink}{四国めたん:} 今回からは、初心者向けにC++言語でのプログラムの書き方の基本を解説していきますわ
\footnotesize \textcolor{lime}{ずんだもん:} よろしくなのだ
\footnotesize \textcolor{pink}{四国めたん:} なぜ、解説がこの順番になったかといいますと、歴史的な順番ということも、もちろんありますわ
\footnotesize \textcolor{lime}{ずんだもん:} そうなのか?
\footnotesize \textcolor{pink}{四国めたん:} でも、一番の理由は、C++言語がC言語にOOP(Object Oriented Programming)の概念を導入して作られた、上位互換の言語だからですわ
\footnotesize \textcolor{lime}{ずんだもん:} つまり、C言語の知識があれば、それにプラスアルファする形でC++言語を理解することができるということか
\footnotesize \textcolor{pink}{四国めたん:} その通りですわ
\footnotesize \textcolor{pink}{四国めたん:} という訳で、今後の解説は【C言語超入門】の知識があることを前提として進めていきますわ
\footnotesize \textcolor{lime}{ずんだもん:} わかったのだ
とにもかくにもHello world
\footnotesize \textcolor{pink}{四国めたん:} では早速Visual Studioを使ってC++言語での最初のプログラムを作成して行きましょう
\footnotesize \textcolor{lime}{ずんだもん:} Visual Studioは、すでにインストールされていて、準備万端なのだ
\footnotesize \textcolor{pink}{四国めたん:} まだの方は、【C言語超入門】 付録1 Visual Studioのインストールを確認してインストールしておいてくださいね
Visual Studio起動
\footnotesize \textcolor{pink}{四国めたん:} 先ず、"スタート"からVisual Studio 2022を選び、起動しますわ
\footnotesize \textcolor{lime}{ずんだもん:} Visual Studioのスタート画面が表示されたのだ

\footnotesize \textcolor{pink}{四国めたん:} "新しいプロジェクトの作成"をクリックしますわ
\footnotesize \textcolor{lime}{ずんだもん:} "新しいプロジェクトの作成"ウィンドウが表示されたのだ

\footnotesize \textcolor{pink}{四国めたん:} 右側上部の"すべての言語"と表示されているプルダウンから"C++"を選択しますわ
\footnotesize \textcolor{pink}{四国めたん:} 次に"すべてのプラットフォーム"と表示されているプルダウンから"Windows"を選択しますわ
\footnotesize \textcolor{pink}{四国めたん:} 最後に"すべてのプロジェクトの種類"と表示されているプルダウンから"コンソール"を選択しますわ
\footnotesize \textcolor{lime}{ずんだもん:} 右側のプロジェクトの種類の表示が変わるはずなのだ
\footnotesize \textcolor{pink}{四国めたん:} "空のプロジェクト"を選択して"次へ"ボタンをクリックしますわ

\footnotesize \textcolor{lime}{ずんだもん:} "新しいプロジェクトを構成します"ウィンドウが表示されたのだ
\footnotesize \textcolor{pink}{四国めたん:} そのまま"作成"ボタンをクリックしますわ
\footnotesize \textcolor{pink}{四国めたん:} なお"プロジェクト名"や"場所"、"ソリューション名"等については、適当に変えても問題ありませんわ
\footnotesize \textcolor{lime}{ずんだもん:} 今回は、"プロジェクト名"と"ソリューション名"を"Project2"にしたのだ

\footnotesize \textcolor{lime}{ずんだもん:} Visual Studioの作業ウィンドウが開いたのだ
プログラムファイルを作成しよう
\footnotesize \textcolor{pink}{四国めたん:} それではプログラムを作成していきましょう
\footnotesize \textcolor{lime}{ずんだもん:} よろしくなのだ
\footnotesize \textcolor{pink}{四国めたん:} まず、"ソリューションエクスプローラー"で"Project2"を右クリックしますわ
\footnotesize \textcolor{lime}{ずんだもん:} メニューが表示されたのだ
\footnotesize \textcolor{pink}{四国めたん:} "追加"→"新しい項目..."を選択しますわ


\footnotesize \textcolor{lime}{ずんだもん:} "新しい項目の追加"ダイアログが表示されたのだ
\footnotesize \textcolor{pink}{四国めたん:} "FileName.cpp"と表示されている部分を"hello_world.cpp"に変更して"追加"ボタンをクリックします。

\footnotesize \textcolor{lime}{ずんだもん:} 拡張子は".cpp"なのか?
\footnotesize \textcolor{pink}{四国めたん:} はい、C言語のファイルの拡張子".c"とは異なるので、注意して下さいね
\footnotesize \textcolor{lime}{ずんだもん:} りょうかいなのだ
\footnotesize \textcolor{pink}{四国めたん:} 作業ウィンドウに"hello_world.cpp"のエディットペインが表示されるので、次のようなコードを記述しますわ
#include <iostream>
int main(int argc, char* argv[]) {
std::cout << "Hello World!!" << std::endl;
return 0;
}
\footnotesize \textcolor{lime}{ずんだもん:} さっそく実行するのだ
\footnotesize \textcolor{pink}{四国めたん:} ツールバーの"ローカルWindowsデバッガー"をクリックするか、\fcolorbox{blue}{lightgray}{F5}を押すと、コードが実行されますわ

\footnotesize \textcolor{lime}{ずんだもん:} コンソールが表示されて"Hello World!!"と表示されたのだ

\footnotesize \textcolor{pink}{四国めたん:} なにかキーを押せばコンソールが閉じ、コードの実行が終了しますわ
\footnotesize \textcolor{pink}{四国めたん:} ちなみに、コンソールが表示されない場合はコードに間違いがあるかもしれませんので、コードを確認して下さいね
\footnotesize \textcolor{lime}{ずんだもん:} わかったのだ
拡張子
C++言語のプログラムファイルの拡張子は".cpp"のほかに".cc"を使う場合があります
他にも".cxx"等も使われるようです
OSやコンパイラ等の環境によって、デフォルトで推奨されている拡張子が異なるようです
プロジェクトとして統一されていれば、どの拡張子をしようしても問題ありません
Visual Studio など、最近の環境では".cpp"が推奨されているようです
各行を解説していくよ
\footnotesize \textcolor{lime}{ずんだもん:} ところで、今回の"Hello World"は、C言語の時とはかなり違うのだ
\footnotesize \textcolor{pink}{四国めたん:} そうですわね
\footnotesize \textcolor{lime}{ずんだもん:} くわしく教えてほしいのだ
\footnotesize \textcolor{pink}{四国めたん:} わかりましたわ
\footnotesize \textcolor{pink}{四国めたん:} それらの違いを順番に解説していきますわね
#include <iostream>
\footnotesize \textcolor{pink}{四国めたん:} ところで、#include
ディレクティブについては覚えていらっしゃいますか?
\footnotesize \textcolor{lime}{ずんだもん:} ヘッダーファイルを読み込む指示だったのだ
\footnotesize \textcolor{pink}{四国めたん:} その通りですわね
\footnotesize \textcolor{pink}{四国めたん:} そして、#include
ディレクティブについては、C++言語でもC言語と同様に使用できますわ
\footnotesize \textcolor{lime}{ずんだもん:} そうなのか?
\footnotesize \textcolor{pink}{四国めたん:} はい、例えばprintf
関数を使用するために#include <stdio.h>
としても問題ありませんわ
\footnotesize \textcolor{lime}{ずんだもん:} でも、今回、指定されているファイル"iostream"には、拡張子".h"が付いていないのだ
\footnotesize \textcolor{pink}{四国めたん:} そうですわね
\footnotesize \textcolor{pink}{四国めたん:} 実は、C++言語には、C言語の 標準Cライブラリ に相当する、 標準C++ライブラリ が存在しますわ
\footnotesize \textcolor{lime}{ずんだもん:} そうなのか?
\footnotesize \textcolor{pink}{四国めたん:} はい、ですので、C++言語では、 標準C++ライブラリ を使用するのが一般的ですわ
\footnotesize \textcolor{lime}{ずんだもん:} なるほどなのだ
\footnotesize \textcolor{pink}{四国めたん:} そして、 標準C++ライブラリ のヘッダーファイルには、現状、拡張子が付いていないのですわ
\footnotesize \textcolor{lime}{ずんだもん:} えぇ~、そうなのか!!
\footnotesize \textcolor{pink}{四国めたん:} ですので、今回インクルードした"iostream"ファイルには、".h"などの拡張子は付けないのですわ
\footnotesize \textcolor{lime}{ずんだもん:} なるほどなのだ
\footnotesize \textcolor{lime}{ずんだもん:} ところで 標準Cライブラリ の関数は、そのまま使えるのか?
\footnotesize \textcolor{pink}{四国めたん:} 使えますわね
\footnotesize \textcolor{pink}{四国めたん:} ただ、 標準Cライブラリ の関数を使用する際のヘッダーファイルについても、別途、拡張子がないファイルが用意されていますわ
\footnotesize \textcolor{lime}{ずんだもん:} printf
とかなら"stdio"という名前のファイルになるのか?
\footnotesize \textcolor{pink}{四国めたん:} 惜しいですわ
\footnotesize \textcolor{pink}{四国めたん:} それらのファイルは、 標準Cライブラリ で使用するファイル名の拡張子を取って、先頭に"c"を追加した名前となりますわ
\footnotesize \textcolor{lime}{ずんだもん:} つまり、"stdio.h"は"cstdio"に、"stdlib.h"は"cstdlib"となるのか...
\footnotesize \textcolor{pink}{四国めたん:} その通りですわ
\footnotesize \textcolor{lime}{ずんだもん:} ところで、"iostream"はどのような定義や宣言を行っているのだ?
\footnotesize \textcolor{pink}{四国めたん:} あとで説明しますが、"cout"などのコンソールへの入出力などを定義、宣言していますわ
\footnotesize \textcolor{lime}{ずんだもん:} "stdio.h"の代わりということか?
\footnotesize \textcolor{pink}{四国めたん:} まぁ、そんな感じですわね
int main(int argc, char* argv[])
\footnotesize \textcolor{pink}{四国めたん:} 次に、int main(int argc, char* argv[])
以下はプログラムの本体となりますわ
\footnotesize \textcolor{lime}{ずんだもん:} 【C言語超入門】で使っていたメイン関数void main()
とは違っているのだ
\footnotesize \textcolor{pink}{四国めたん:} どちらを使ってもかまわないのですが、今回からは、この形式のメイン関数を使っていきますわ
\footnotesize \textcolor{lime}{ずんだもん:} なるほどなのだ
\footnotesize \textcolor{pink}{四国めたん:} ちなみに、"argc"はプログラム実行時に指定した引数の数、"argv"は引数の文字列の配列ですわ
\footnotesize \textcolor{lime}{ずんだもん:} 当面は使わないのでスルーするのだ
\footnotesize \textcolor{pink}{四国めたん:} そうですわね
\footnotesize \textcolor{pink}{四国めたん:} なお、戻り値は整数となりますわ
\footnotesize \textcolor{lime}{ずんだもん:} どのような値を返すのだ?
\footnotesize \textcolor{pink}{四国めたん:} 一般的には、プログラムの実行が成功した場合には0、失敗した場合にはそれ以外の整数を返しますわね
\footnotesize \textcolor{lime}{ずんだもん:} これも基本的には0を返しておくのだ
std::cout << "Hello World!!" << std::endl;
\footnotesize \textcolor{pink}{四国めたん:} 最後に、std::cout << "Hello World!!" << std::endl;
はプログラムの本体ですわ
\footnotesize \textcolor{lime}{ずんだもん:} 何をしているのだ?
\footnotesize \textcolor{pink}{四国めたん:} コンソールに"Hello World!!"という文章を表示させていますわ
\footnotesize \textcolor{lime}{ずんだもん:} printf
でもいいのではないか?
\footnotesize \textcolor{pink}{四国めたん:} まぁ、printf
でもOKなのですが、今回は敢てC++流のコンソール出力をおこなってみましたわ
\footnotesize \textcolor{lime}{ずんだもん:} りょうかいなのだ
std::cout
\footnotesize \textcolor{lime}{ずんだもん:} ところでstd::cout
とは何なのだ?
\footnotesize \textcolor{pink}{四国めたん:} std::cout
は、"iostream"で宣言されている変数で、ここに 流し込まれた 文字列や数値がコンソールに表示されますわ
\footnotesize \textcolor{lime}{ずんだもん:} 流し込む ?
\footnotesize \textcolor{pink}{四国めたん:} その説明は後回しですわ
\footnotesize \textcolor{lime}{ずんだもん:} 少し待つのだ
\footnotesize \textcolor{lime}{ずんだもん:} まずはstd
の説明をお願いするのだ
\footnotesize \textcolor{pink}{四国めたん:} わかりましたわ
\footnotesize \textcolor{pink}{四国めたん:} std
は 名前空間 もしくは namespace と呼ばれるもので、 標準C++ライブラリ の関数や定義は、殆どが std名前空間 に属しますわ
\footnotesize \textcolor{lime}{ずんだもん:} 名前空間 ?
\footnotesize \textcolor{pink}{四国めたん:} はい、関数や定義が属している 名前空間 は、コロンを2つ"::"で区切ることで示すようにしますわ
\footnotesize \textcolor{lime}{ずんだもん:} チョッと、いきなりすぎて良く判らないのだ
\footnotesize \textcolor{pink}{四国めたん:} このあたりは後の回で詳しく説明するので、今は「そんなものがあるんだ」程度に思ってスルーしてください
\footnotesize \textcolor{lime}{ずんだもん:} む~、わかったのだ
<<
\footnotesize \textcolor{pink}{四国めたん:} 次に、二重の小なり"<<"は演算子ですわ
\footnotesize \textcolor{lime}{ずんだもん:} つまり、イコール"="や四則演算子"+-/*"と同じというわけか...
\footnotesize \textcolor{pink}{四国めたん:} その通りですわ
\footnotesize \textcolor{pink}{四国めたん:} 一般的には 挿入演算子 と呼ばれますわね
\footnotesize \textcolor{lime}{ずんだもん:} なるほどなのだ
\footnotesize \textcolor{pink}{四国めたん:} std::cout
に対しては、文字列や数値を 流し込んで コンソールに表示しますわ
\footnotesize \textcolor{lime}{ずんだもん:} なるほど、 流し込む とは、 挿入演算子 で文字列や数値を 挿入 することか
\footnotesize \textcolor{pink}{四国めたん:} その通りですわ
\footnotesize \textcolor{pink}{四国めたん:} また、 挿入演算子 は、文字列や数値を 挿入 後にstd::cout
を、そのまま返しますわ
\footnotesize \textcolor{lime}{ずんだもん:} つまり、 挿入演算子 は連続して使うことができるということか...
\footnotesize \textcolor{pink}{四国めたん:} はい
\footnotesize \textcolor{lime}{ずんだもん:} ところで、最後の std::endl は何なのだ?
\footnotesize \textcolor{pink}{四国めたん:} 改行"\n"とほぼ同じですわ
\footnotesize \textcolor{lime}{ずんだもん:} りょうかいなのだ
まとめ
\footnotesize \textcolor{pink}{四国めたん:} お疲れさまでした
\footnotesize \textcolor{lime}{ずんだもん:} おつかれさまなのだ
\footnotesize \textcolor{pink}{四国めたん:} 以上ですべてのプログラマーがいちどは通る道、 "Hello World!!"の表示 を終了しますわ
Discussion