
C++入門|C++の最初のプログラム
C言語の修行を終えたら、次はいよいよC++の修行場へ。iostream、std、coutを使いこなして、C++最初のメッセージをコンソールに放とう。
ここからは、C++の基本文法に入っていきます。
これまでC言語では、printfを使ってコンソールに文字を表示してきました。
C++でも同じように文字を表示できますが、書き方は少し変わります。
C言語では、stdio.hを読み込み、printf関数を使って文字列を表示しました。
一方、C++では、iostreamというヘッダーを読み込み、coutという出力用のオブジェクトを使って文字列を表示します。
ドラゴンボール風にたとえるなら、C言語では昔ながらの修行装置を使って表示していたのに対し、C++では新しい高性能な修行装置を使って、ストリームというエネルギーの流れにメッセージを乗せて表示するイメージです。
C++では、C言語で学んだ基本を土台にしながら、名前空間、ストリーム、オブジェクトといった新しい考え方が登場します。
ただし、最初から難しく考えなくても大丈夫です。
まずは、C++のソースファイルを作り、main.cppに短いプログラムを書き、coutでメッセージを表示するところから始めましょう。
| C言語で使ったもの | C++で使うもの | 役割 |
|---|---|---|
| stdio.h | iostream | 入出力機能を使うための準備 |
| printf | cout | コンソールに文字を表示する |
| \n | endl | 改行する |
| .c | .cpp | ソースファイルの拡張子 |
C++の最初のプログラムでは、C言語との違いを少しずつ確認していきます。
特に、#include 、using namespace std;、cout、<<、endl の役割を押さえることが大切です。
図:C言語からC++の表示方法へ進む流れ

この図が示していること
この図では、C言語で使っていた表示方法から、C++で使う表示方法へ進む流れを表しています。
C言語では、stdio.hを読み込み、printfで文字を表示しました。
C++では、iostreamを読み込み、coutで文字を表示します。
C++はC言語の知識を土台にしながら、より新しい仕組みを使ってプログラムを書いていきます。
最初は見慣れない記号が出てきますが、役割をひとつずつ見ていけば自然に理解できます。
C++用のプロジェクトを作成する
C++のプログラムを書くには、まずC++用のプロジェクトを作成します。
Visual Studioでは、C言語のときと同じように、新しいプロジェクトを作成し、空のプロジェクトを選びます。
そして、C++用のソースファイルを追加していきます。
ここで大切なのは、ソースファイルの拡張子です。
C言語では、ソースファイルの拡張子に.cを使いました。
C++では、ソースファイルの拡張子に.cppを使います。
| 言語 | ソースファイル名の例 | 拡張子 |
|---|---|---|
| C言語 | main.c | .c |
| C++ | main.cpp | .cpp |
拡張子が違うと、Visual Studioやコンパイラは、そのファイルをどの言語として扱うかを判断しやすくなります。
ドラゴンボール風にたとえるなら、.cはC言語修行用の巻物、.cppはC++修行用の巻物です。
見た目は似ていても、使う技や読み取り方が少し違います。
C++の学習では、これから作るソースファイルの拡張子を.cppにすることを意識しましょう。
C++用のプロジェクトの作成手順
「空のプロジェクト」を選択し「次へ」をクリックします。

プロジェクト名に「Chap2_01」と入力し「作成」をクリックします。

ソースファイルmain.cppを追加する
プロジェクトを作成したら、ソリューションエクスプローラーのソースファイルフォルダに、新しいソースファイルを追加します。

ファイル名はmain.cppにします。

C++では、main.cppが最初の修行巻物になります。
このファイルにC++のコードを書き、実行して、コンソールにメッセージを表示します。
| 作業 | 内容 |
|---|---|
| ソースファイルを追加する | C++のコードを書くファイルを作る |
| ファイル名をmain.cppにする | C++用のソースファイルとして扱う |
| ソリューションエクスプローラーで確認する | main.cppが追加されているか見る |
ファイル名がmain.cになっているとC言語のソースファイルとして扱われます。
C++の学習では、必ずmain.cppになっていることを確認しましょう。
ドラゴンボール風に言えば、C++用の修行場に入るなら、C++専用の巻物を使う必要があります。
その巻物がmain.cppです。
C++の最初のプログラムを入力する
それでは、C++の最初のプログラムを見てみましょう。
ここでは、C++の出力機能を使って、コンソールにメッセージを表示します。
プロジェクト/ファイル名: Chap2_01/main.cpp
#include <iostream>
using namespace std;
int main(int argc, char** argv) {
// C++の最初のメッセージを表示する
cout << "C++ Training Start!" << endl;
// プログラムが正常に終わったことを示す
return 0;
}このプログラムを実行すると、次のように表示されます。
C++ Training Start!このプログラムには、C言語にはなかったC++らしい書き方が登場しています。
| 記述 | 役割 |
|---|---|
| #include | C++の入出力機能を使う準備 |
| using namespace std; | std名前空間を使いやすくする |
| cout | コンソールへ出力するためのオブジェクト |
| << | データを出力先へ送る記号 |
| endl | 改行して出力を整える |
| return 0; | 正常終了を知らせる |
C言語のprintfと比べると、cout << 文字列 << endl; という書き方は少し独特に見えるかもしれません。
でも、考え方はシンプルです。
coutという出力先に、<<を使って文字列を流し込み、最後にendlで改行する、という流れです。
#include はC++の入出力を使う準備
プログラムの1行目には、次の記述があります。
#include <iostream>#includeは、C言語のときにも登場しました。
外部の機能を使うために、必要なヘッダーを読み込む宣言です。
C言語では、printfを使うためにstdio.hを読み込みました。
C++では、coutを使うためにiostreamを読み込みます。
| 言語 | 読み込むもの | 使えるようになるもの |
|---|---|---|
| C言語 | stdio.h | printfなど |
| C++ | iostream | cout、cin、endlなど |
C++のiostreamには、標準入出力に関する機能が用意されています。
画面に出力するcout、キーボードから入力を受け取るcin、改行を行うendlなどを使うために必要です。
ドラゴンボール風にたとえるなら、iostreamはC++修行場にある高性能な通信装置の説明書です。
このヘッダーを読み込むことで、コンソールへメッセージを送るための道具が使えるようになります。
C++のヘッダーには.hが付かないものがある
C言語では、stdio.hのように.hが付いたヘッダーファイルを使いました。
一方、C++の標準ヘッダーでは、iostreamのように.hを付けない書き方を使います。
#include <iostream>ここでは、iostream.hではなくiostreamと書きます。
| 種類 | 例 | 特徴 |
|---|---|---|
| C言語のヘッダーファイル | stdio.h | .hが付く |
| C++の標準ヘッダー | iostream | .hを付けない |
これは、C言語のヘッダーファイルとC++の標準ヘッダーを区別するポイントのひとつです。
最初は、C++でcoutを使うときは#include と覚えておくとよいです。
ドラゴンボール風に言えば、C言語の巻物には.hという古い修行印が付いていました。
C++の標準ヘッダーは、新しい修行体系の巻物なので、iostreamのように名前だけで読み込むイメージです。
図:iostreamを読み込むとcoutが使えるようになる

この図が示していること
この図では、#include によって、C++の標準入出力機能が使えるようになることを表しています。
iostreamを読み込むことで、coutやcin、endlなどの機能を利用できるようになります。
今回のプログラムでは、この中のcoutとendlを使って、コンソールに文字列を表示しています。
C++の最初のプログラムでは、iostreamを読み込むことがとても大切です。
using namespace std;は標準名前空間を使う宣言
次に登場するのが、次の行です。
using namespace std;これは、stdという名前空間を使うための宣言です。
名前空間とは、変数や関数、オブジェクトなどが置かれている場所のようなものです。
C++では、標準で用意されているcoutやendlなどが、stdという名前空間の中にあります。
そのため、本来は次のように書くこともできます。
std::cout << "C++ Training Start!" << std::endl;ただし、using namespace std;を書いておくと、std::を省略して、coutやendlをそのまま使えるようになります。
| 書き方 | 意味 |
|---|---|
| using namespace std; | std名前空間を使う |
| cout | std名前空間内の出力オブジェクトを使う |
| endl | std名前空間内の改行機能を使う |
| std::cout | stdの中にあるcoutを明示して使う |
ドラゴンボール風にたとえるなら、std名前空間はC++標準流派の道場です。
coutやendlは、その道場に置かれている標準技です。
using namespace std;を書くことで、「このプログラムでは標準流派の技をそのまま使います」と宣言しているようなイメージです。
名前空間は名前の衝突を防ぐための仕組み
名前空間は、C++から登場する大切な考え方です。
大きなプログラムでは、たくさんの関数や変数、オブジェクトが登場します。
もし同じ名前のものが複数あった場合、どれを使えばよいのか分からなくなることがあります。
名前空間は、その混乱を避けるための仕組みです。
ドラゴンボール風にたとえるなら、同じ技名を別々の流派が使っていたとしても、「亀仙流の技」「神流の技」のように流派を分けておけば混乱しません。
| 考え方 | C++での意味 | ドラゴンボール風のイメージ |
|---|---|---|
| 名前空間 | 名前を分類する場所 | 流派や道場 |
| std | C++標準の名前空間 | 標準流派の道場 |
| cout | stdの中にある出力用オブジェクト | 表示パネルに送る標準技 |
| endl | stdの中にある改行操作 | 行を切り替える標準技 |
今回の段階では、stdの中にcoutやendlがあるため、using namespace std;を書いて使いやすくしている、と理解できれば十分です。
coutはコンソールに出力するためのオブジェクト
プログラムの中心になるのが、次の行です。
cout << "C++ Training Start!" << endl;coutは、コンソールに文字を出力するためのオブジェクトです。
C言語では、printf関数を使って文字を表示しました。
C++では、coutを使って文字を表示します。
| C言語 | C++ |
|---|---|
| printf("Hello World.\n"); | cout << "C++ Training Start!" << endl; |
ここで大切なのは、C++の標準入出力がストリームという仕組みを使っていることです。
ストリームとは、データの流れのようなものです。
coutへ文字列を流し込むことで、その文字列がコンソールに表示されます。
ドラゴンボール風にたとえるなら、coutは修行場の表示パネルにつながるエネルギーの通り道です。
文字列というメッセージを、<<を使ってcoutへ流し込むと、表示パネルに出力されます。
<<はデータをcoutへ送る記号
C++の出力では、<<という記号を使います。
cout << "C++ Training Start!" << endl;この<<は、右側のデータを左側の出力先へ送るイメージで読むと分かりやすいです。
| 記述 | 意味 |
|---|---|
| cout | 出力先 |
| << | データを送る |
| "C++ Training Start!" | 表示したい文字列 |
| endl | 改行する |
この1行は、次のような流れになっています。
- coutへ文字列 C++ Training Start! を送る
- さらにcoutへendlを送る
- 文字列が表示され、改行される
ドラゴンボール風に言えば、<<は気の流れをコンソール装置へ送る通路です。
メッセージをcoutへ送り、最後にendlを送ることで、表示と改行を行います。
図:cout、<<、endlで文字列を表示する流れ

この図が示していること
この図では、coutを使って文字列を表示する流れを表しています。
coutはコンソールへの出力先です。
<<を使うことで、文字列やendlをcoutへ送ります。
送られた文字列はコンソール画面に表示され、endlによって改行されます。
C++の出力では、printfのように関数へ文字列を渡すのではなく、coutという出力先へデータを流し込むイメージで考えると分かりやすくなります。
endlは改行を表す
C++では、改行にendlを使うことができます。
cout << "C++ Training Start!" << endl;endlは、出力したあとに改行するためのものです。
C言語では、\nを使って改行しました。
C++でも\nは使えますが、coutを使う場合はendlもよく使われます。
| 改行の方法 | 例 |
|---|---|
| \nを使う | cout << "C++ Training Start!\n"; |
| endlを使う | cout << "C++ Training Start!" << endl; |
今回のプログラムでは、endlを使っています。
ドラゴンボール風にたとえるなら、endlは表示パネルの行を切り替える合図です。
メッセージを表示したあと、次の行へ移動します。
main関数はC++でもプログラムの入口
C言語と同じように、C++でもmain関数がプログラムの入口になります。
int main(int argc, char** argv) {プログラムを実行すると、まずmain関数の中の処理が動きます。
今回のmain関数では、coutでメッセージを表示し、最後にreturn 0;で正常終了を知らせています。
| 記述 | 役割 |
|---|---|
| int | main関数が整数を返すことを示す |
| main | プログラムの開始地点 |
| argc | 実行時に渡された情報の個数 |
| argv | 実行時に渡された情報の中身 |
| return 0; | 正常終了を知らせる |
今回のサンプルでは、argcとargvは使っていません。
ただし、C言語やC++では、実行時の情報を受け取れるmain関数の形としてよく登場します。
ドラゴンボール風に言えば、main関数はC++修行場の入口です。
この入口に入ると、coutでメッセージを表示する修行が始まり、return 0;で修行完了を報告します。
C言語のprintfとC++のcoutの違い
C言語で文字を表示するときは、printfを使いました。
printf("Hello World.\n");C++では、coutを使って表示します。
cout << "C++ Training Start!" << endl;どちらもコンソールに文字を表示するためのものですが、考え方が少し違います。
| 項目 | printf | cout |
|---|---|---|
| 主に使う言語 | C言語 | C++ |
| 必要な読み込み | stdio.h | iostream |
| 書き方 | 関数に文字列を渡す | ストリームへデータを送る |
| 改行 | \n | endl または \n |
| 代表的な形 | printf("文字列\n"); | cout << "文字列" << endl; |
printfは、関数に表示したい内容を渡すイメージです。
coutは、出力先にデータを流し込むイメージです。
ドラゴンボール風にたとえるなら、printfは表示装置に直接命令を出す古い型の技です。
coutは、ストリームというエネルギーの流れにメッセージを乗せて送る新しい型の技です。
どちらも表示できますが、C++ではcoutを使う書き方に慣れていくことが大切です。
C++ではオブジェクトやクラスの考え方が登場する
C++では、C言語にはなかったオブジェクトやクラスという考え方が登場します。
今回出てきたcoutも、標準出力を扱うためのオブジェクトです。
ここでは、オブジェクトやクラスを深く説明する必要はありません。
今は、coutはC++でコンソールに出力するために用意された標準的なもの、と理解しておけば大丈夫です。
ドラゴンボール風にたとえるなら、C言語では関数という技を中心に修行していました。
C++では、技だけでなく、戦士そのものや修行装置そのものを部品として扱う世界に進んでいきます。
| C言語の考え方 | C++で加わる考え方 |
|---|---|
| 関数を中心に処理を書く | オブジェクトやクラスも使う |
| printfのような関数で表示する | coutのようなオブジェクトで表示する |
| 手続きの流れを重視する | 部品同士の関係も重視する |
オブジェクトやクラスは、これからC++を学ぶうえでとても重要になります。
ただし、最初の段階では、C++ではcoutのようなオブジェクトを使って出力するのだと押さえておきましょう。
C++最初のプログラムの流れを整理する
今回のプログラムは、とても短いですが、C++の基本が詰まっています。
#include <iostream>
using namespace std;
int main(int argc, char** argv) {
cout << "C++ Training Start!" << endl;
return 0;
}処理の流れは次のようになります。
| 順番 | 処理 | 内容 |
|---|---|---|
| 1 | iostreamを読み込む | coutやendlを使う準備をする |
| 2 | std名前空間を使う | coutやendlを簡単に書けるようにする |
| 3 | main関数から開始 | プログラムの処理が始まる |
| 4 | coutで表示 | コンソールへ文字列を送る |
| 5 | endlで改行 | 表示後に改行する |
| 6 | return 0; | 正常終了を知らせる |
この流れを覚えておくと、C++の最初のプログラムを読みやすくなります。
C++では、C言語で学んだmain関数やreturn 0;の考え方をそのまま使いながら、iostream、std、cout、endlのような新しい要素が加わります。
C++の最初のプログラムで覚えておきたいポイント
C++の最初のプログラムでは、次のポイントを押さえておきましょう。
| ポイント | 内容 |
|---|---|
| C++のファイルは.cppにする | main.cppとして作成する |
| iostreamを読み込む | coutやendlを使うため |
| using namespace std;を書く | std名前空間を使いやすくする |
| coutで表示する | コンソールへ文字列を出力する |
| <<でデータを送る | coutへ文字列やendlを渡す |
| endlで改行する | 表示後に次の行へ進める |
| main関数から始まる | C++でもプログラムの入口はmain |
最初は、cout << 文字列 << endl; という形に慣れることが大切です。
C言語のprintfに比べると書き方は違いますが、目的は同じです。
コンソールにメッセージを表示するための基本技です。
ドラゴンボール風に言えば、C言語の修行場で覚えた表示技を、C++の新しい修行場で使える形に進化させたものです。
C++の学習は、この小さなプログラムから始まります。
iostreamで準備し、std名前空間を使い、coutでメッセージを出力する。
この流れをつかめば、C++の本格的な文法へ進む準備が整います。
