Hello, World!

一、最小のC++プログラム

int main()  // 最小のC++プログラム
{

} Code language: JavaScript (javascript)
  1. このコードは引数を持たず、内部処理を一切実行しないmain関数を定義しています。
  2. 左波括弧{はmain関数本体の開始、右波括弧}は関数本体の終了を意味し、実行するコードは{}の中に記述します。
  3. 二重スラッシュ//は1行コメントで、//から行末までの文字列は人間が読むだけの情報であり、コンパイラは無視します。
  4. 完全なC++プログラムにはグローバルなmain()関数が必ず1つだけ存在しなければならず、プログラムはmainから実行が始まります。
  5. intは関数が整数値を返すことを示します。関数内で0を返すと正常終了、0以外を返すとエラー発生となります。
  6. 5番で述べた戻り値はUnix/Linuxシステムが読み取りますが、Windowsプログラムではほとんど使用されません。

二、標準出力 Hello World 完全サンプル

#include <iostream>

int main()
{
    std::cout << "Hello, World!\n";
}Code language: C++ (cpp)
  • #include <iostream>:コンパイラに標準入出力ストリームライブラリの宣言を読み込むよう指示します。この行がないとstd::coutによる出力文が認識されません。

iostreamは先ほど紹介した標準ライブラリの一つで、コンパイラに標準搭載されたC++製コードです。コンソールへの文字出力など、入出力関連の処理に使用します。

  • << 出力演算子:右辺の内容を左辺の出力オブジェクトstd::coutに書き出します。本サンプルでは文字列"Hello, World!\n"を標準コンソール(CMDターミナル)に出力します。
  • “Hello, World!\n” は文字列リテラル:二重引用符で囲まれたテキスト。エスケープ文字\nは改行を意味し、出力後カーソルが次の行へ移動します。
  • std:::名前空間修飾子で、coutが標準ライブラリstd配下の部品であることを示します。後ほどusing namespace std;を紹介し、std::接頭辞を省略して直接coutを使う方法を解説します。

名前空間修飾子の役割は同名衝突を防ぐため、ライブラリに専用の接頭辞を付けることです。例えばクラス内に同姓同名の生徒が二人いる場合、先生が「ジェイソン1」「ジェイソン2」と区別するラベルを付けるように、stdも同じ役割を持ちます。

完全なサンプル

下記のサンプルには追加の関数が2つ定義されています。main関数から一方の関数を呼び出し、その関数がさらにもう一方の関数を呼び出す仕組みです。円の面積を計算するプログラムで、半径を指定すると面積を出力します。

#include <iostream>
using namespace std; // std名前空間を導入すると、以降std::を省略可能

// 円面積計算
double circle_area(double x)
{
    return 3.14 * x * x;
}

// 円面積を出力
void print_circle_area(double r)
{
    cout << "The area of circle with radius " << r << " is " << circle_area(r) << "\n";
}

int main()
{
    print_circle_area(2.0); // 半径2、円面積を出力
    return 0;
}Code language: C++ (cpp)

実行結果

The area of circle with radius 2 is 12.56Code language: JavaScript (javascript)

cout は << を連鎖させて複数の内容を連続出力できます。\nを記述しないとすべて同じ行に出力されます。文字列リテラル以外に、double型の変数rなど各種変数も出力可能です。

void print_circle_area(double r) の括弧内(double r)は引数です。引数とは外部から関数内部に渡す値を受け取る変数のことです。main内で print_circle_area(2.0); を実行すると2.0が渡され、関数内のrは2.0となります。続くcoutではテキスト、変数r、circle_area(r)の実行結果を順に出力します。このときrの値2.0が double circle_area(double x) のxに渡され、x=2.0となり3.14*2*2=12.56が計算され、returnで呼び出し元へ戻ります。実行時の動作は下記コードと同等です。

cout << "The area of circle with radius " << r << " is " <<  12.56 << "\n";Code language: C++ (cpp)

出力完了後、}によりprint_circle_area関数が終了し、処理がmain関数へ戻ります。

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です