最初の C++ プログラムを書く

C++Beginner
オンラインで実践に進む

はじめに

この実験では、最初の C++ プログラムを書く方法を学びます。Ubuntu 22.04 で GCC(GNU Compiler Collection)コンパイラをインストールし、必要な環境変数を設定することから始めます。その後、新しい C++ ソースファイルを作成し、基本的なプログラム構造を書き、cout文を使って「Hello World」メッセージを表示します。また、プログラムをコンパイルして実行する方法、1 行コメントと複数行コメントを追加する方法、改行にendl\nを使う方法、セミコロンの欠落などの一般的な構文エラーを修正する方法についても学びます。

Ubuntu 22.04 において GCC コンパイラをインストールして環境変数を設定する

このステップでは、Ubuntu 22.04 において C++ 用の GCC(GNU Compiler Collection)コンパイラをインストールし、必要な環境変数を設定する方法を学びます。GCC は C++ プログラムをコンパイルして実行するために不可欠です。

まず、WebIDE 内のターミナルを開きましょう。画面下部のターミナルアイコンをクリックするか、キーボードショートカット(通常は Ctrl+`)を使用して行うことができます。

利用可能なパッケージの最新情報を確認するために、パッケージリストを更新しましょう:

sudo apt update

実行結果の例:

Hit:1 http://mirrors.cloud.aliyuncs.com/ubuntu jammy InRelease
Hit:2 http://mirrors.cloud.aliyuncs.com/ubuntu jammy-updates InRelease
Hit:3 http://mirrors.cloud.aliyuncs.com/ubuntu jammy-backports InRelease
Hit:4 http://mirrors.cloud.aliyuncs.com/ubuntu jammy-security InRelease
Reading package lists... Done
Building dependency tree... Done
Reading state information... Done
157 packages can be upgraded. Run 'apt list --upgradable' to see them.
Terminal update command output

次に、GCC コンパイラと関連する開発ツールをインストールします:

sudo apt install -y build-essential

実行結果の例:

Reading package lists...
Building dependency tree...
Reading state information...
build-essential is already the newest version.
0 upgraded, 0 newly installed, 0 to remove and 22 not upgraded.

インストールを確認し、GCC のバージョンを確認するには、次のコマンドを実行します:

g++ --version

実行結果の例:

g++ (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0
Copyright (C) 2021 Free Software Foundation, Inc.
This is free software; see the source for copying conditions.  There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.

GCC コンパイラは通常、システムの PATH に既に含まれているため、追加の設定は必要ありません。

.cpp 拡張子を持つ新しい C++ ソースファイルを作成する

このステップでは、.cpp拡張子を持つ新しい C++ ソースファイルを作成する方法を学びます。C++ では、ソースファイルは C++ コードを含むことを示すために.cpp拡張子を使用します。最初の C++ ソースファイルを作成するために、WebIDE のファイルエクスプローラーとテキストエディタを使用します。

まず、ターミナルで~/projectディレクトリに移動します:

cd ~/project

次に、WebIDE のファイルエクスプローラーを開きます。ファイルとフォルダの一覧が表示されるサイドバーが見えます。新しいファイルを作成できるアイコンを探しましょう。それは「+」記号や「新しいファイル」オプションのように見えるかもしれません。

ファイルエクスプローラー内で右クリックし、「新しいファイル」を選択します。プロンプトが表示されたら、ファイル名をhello.cppとします。.cpp拡張子は、これが C++ ソースファイルであることをコンパイラや開発ツールに伝えるために重要です。

ターミナルでのファイル作成の例(参考用):

touch hello.cpp

新しく作成したhello.cppファイルをクリックして、WebIDE のテキストエディタで開きます。最初の C++ コード用の空のファイルが表示されます。

.cpp拡張子が重要な理由は以下の通りです:

  • このファイルが C++ ソースコードファイルであることを識別します。
  • 開発ツールやコンパイラにファイルタイプを認識させます。
  • .c(C)、.java(Java)、.py(Python)などの他のプログラミング言語のファイルと C++ ファイルを区別します。

この時点で、hello.cppファイルは C++ コードを書き始める準備ができています。次のステップでは、このファイルに基本的な C++ プログラムを書く方法を学びます。

int main() 関数を使って基本的なプログラム構造を書く

このステップでは、main()関数に焦点を当てて、C++ プログラムの基本構造について学びます。すべての C++ プログラムには必ずmain()関数が必要で、これはプログラムが実行を開始するエントリーポイントです。

前のステップで作成した WebIDE 内のhello.cppファイルを開きます。ここで、基本的なプログラム構造を追加しましょう:

#include <iostream>

int main() {
    // ここにコードを記述します
    return 0;
}

注意: より良い学習成果を得るために、コードを手入力することをお勧めします。波括弧{ }とセミコロン;には注意してください。これらは C++ の構文において不可欠な要素です。スペースやインデントを忘れないでください。そうしないと、ステップの検証に失敗する可能性があります。

この基本構造を分解してみましょう:

  1. #include <iostream>:これは、入出力ストリームライブラリを含めるための事前プロセッサディレクティブです。これにより、画面に出力するなどの入出力操作を使用できるようになります。
  2. int main():これはメイン関数の宣言です
    • intは、関数が整数値を返すことを指定します
    • main()は C++ プログラムの標準的なエントリーポイントです
    • 空の丸括弧()は、関数に引数を渡さないことを示しています
  3. 波括弧{ }:コードを記述する関数の本体を定義します
  4. return 0;:プログラムの正常な終了を示します
    • 0 を返すことで、オペレーティングシステムに対して、プログラムがエラーなく実行されたことを伝えます
    • これは C++ プログラムにおける標準的な慣習です

WebIDE は、入力すると自動的に変更を保存します。または、エディタの保存オプションを使用して手動でファイルを保存することもできます。

WebIDE についてもっと学びたい場合は、WebIDE ガイドをご覧ください。

忘れないでください:

  • すべての C++ プログラムには必ずmain()関数が必要です
  • main()関数はプログラムの実行が始まる場所です
  • return 0;文は通常、プログラムの正常な実行を示すために使用されます

main()関数を、旅の始発地点のように考えることができます。まるで道の旅が特定の場所から始まるように、C++ プログラムはmain()関数から実行を開始します。

cout を使って Hello World メッセージを表示する

このステップでは、coutを使って画面に「Hello, World!」メッセージを表示する方法を学びます。coutは C++ の標準入出力ライブラリの一部で、出力を表示するために使用されます。

WebIDE 内のhello.cppファイルを開き、main()関数を次のコードを含むように修正します:

#include <iostream>

int main() {
    std::cout << "Hello, World!" << std::endl;
    return 0;
}

新しいコード行を分解してみましょう:

  • std::cout:これは標準出力ストリームオブジェクトです
    • std::は、標準名前空間を使用していることを示します
    • coutは「コンソール出力」を意味します
  • <<:ストリーム挿入演算子で、データを出力ストリームに送信するために使用されます
  • "Hello, World!":表示したいテキストメッセージ
  • std::endl:新しい行を追加し、出力バッファをフラッシュします
    • メッセージが即座に表示されることを保証します
    • カーソルを次の行に移動します

ファイルを保存する際には、上記に示す全体の構造を含めることを確認してください。

coutに関するいくつかの重要なポイント:

  • 画面にテキスト、数字、その他のデータ型を表示するために使用されます
  • <<演算子を連鎖させて複数の項目を表示することができます
  • std::endlは、表示後に新しい行を作成するために使用されます

coutを、世界に向かってメッセージを叫ぶマイクのように考えることができます。<<演算子がメッセージをロードするのに役立ち、std::endlが誰もがはっきりと聞けるようにします。

g++ hello.cpp -o hello コマンドでプログラムをコンパイルする

このステップでは、g++コンパイラを使って C++ プログラムをコンパイルする方法を学びます。コンパイルとは、人間が読みやすい C++ ソースコードをコンピュータが実行できる実行可能プログラムに変換するプロセスです。

WebIDE 内のターミナルを開きます。~/projectディレクトリにいることを確認してください:

cd ~/project

次に、先ほど作成したhello.cppファイルをg++コマンドを使ってコンパイルしましょう:

g++ hello.cpp -o hello

このコマンドを分解してみましょう:

  • g++:GNU C++ コンパイラ
  • hello.cpp:コンパイルしたいソースファイル
  • -o hello:出力実行可能ファイル名を指定します
    • -oは出力ファイル名を指定するためのオプションです
    • helloは作成する実行可能ファイルの名前です

実行結果の例:

## 出力がないことは、コンパイル成功を意味します

コンパイルが成功すると、エラーメッセージは表示されません。コンパイラは同じディレクトリにhelloという名前の実行可能ファイルを作成します。

Terminal compiling C++ code

コンパイルを確認するには、ディレクトリ内のファイルを確認できます:

ls

実行結果の例:

hello  hello.cpp

この時点で、2 つのファイルが見えるはずです:

  • hello.cpp:ソースコードファイル
  • hello:コンパイル済みの実行可能プログラム

重要なコンパイルのメモ:

  • コードにエラーがある場合、g++はエラーメッセージを表示します
  • プログラムを実行しようとする前に、必ずコンパイルエラーを確認して修正してください
  • -oオプションは省略可能ですが、実行可能ファイルに意味のある名前を付けるのは良い慣習です

コンパイルを、本を別の言語に翻訳するように考えることができます。g++コンパイラは、人間が読みやすい C++ コードをコンピュータが理解して実行できる言語に翻訳します。

./hello コマンドでプログラムを実行する

このステップでは、先ほどコンパイルした実行可能プログラムを実行する方法を学びます。C++ プログラムをコンパイルした後、実行可能名の前に./コマンドを使って実行できます。

~/projectディレクトリにいることを確認してください:

cd ~/project

前のステップでコンパイルしたプログラムを実行するには、次のコマンドを使用します:

./hello

./はシステムに対して現在のディレクトリから実行可能ファイルを探すように指示し、helloは作成した実行可能ファイルの名前です。

実行結果の例:

Hello, World!

何が起こっているか分解してみましょう:

  • ./は「現在のディレクトリ内」を意味します
  • プログラムはコンパイル済みの実行可能ファイル内の指示を読み取ります
  • それは C++ ソースコードで定義したメッセージを表示します
  • 表示後、プログラムは終了します

重要な実行のメモ:

  • 現在のディレクトリでプログラムを実行する際は、常に実行可能名の前に./を使用します
  • プログラムは実行許可が必要です(g++が自動的に提供します)
  • 出力が見えない場合は、コンパイルが正しく行われているかどうかを再度確認してください

プログラムを実行することを、車をスタートさせるように考えることができます。コンパイルは車を準備することで、プログラムを実行することはキーを回して運転することに相当します。

プログラムを何度も実行したい場合は、./helloコマンドを簡単に繰り返せます。

1 行コメントと複数行コメントを追加する

このステップでは、C++ コードにコメントを追加する方法を学びます。コメントは、コードが何を行うかを説明するコード内の注釈です。コンパイラによって無視され、コードの読みやすさを向上させるのに役立ちます。

WebIDE 内のhello.cppファイルを開き、異なる種類のコメントを含むように修正します:

#include <iostream>

// これは単一行コメントです
// このプログラムが何を行うかを説明します

/*
これは複数行コメントです
複数行の説明を書くことができます
各行に//を追加することを心配する必要はありません
*/
int main() {
    // 挨拶メッセージを表示します
    std::cout << "Hello, World!" << std::endl;  // 出力を説明するインラインコメント

    /*
    必要に応じて、コードの途中でも複数行コメントを使用できます
    */
    return 0;  // オペレーティングシステムに成功状態を返します
}

コメントの種類を分解してみましょう:

  1. 単一行コメント:
    • //で始まります
    • 行の終わりまで続きます
    • 短い説明に最適
  2. 複数行コメント:
    • /*で始まります
    • */で終わります
    • 複数行にまたがることができます
    • 長い説明に便利
  3. インラインコメント:
    • コード行の末尾に追加されます
    • 特定のコード行を説明します

コンパイルしてプログラムを実行し、まだ機能することを確認します:

g++ hello.cpp -o hello
./hello

実行結果の例:

Hello, World!

コメントに関するいくつかの重要なポイント:

  • コメントにより、コードがより理解しやすくなります
  • 他のプログラマ(自分自身も含む)にとって、コードの目的を理解するのに役立ちます
  • コンパイラはコメントを完全に無視します
  • コメントを使って、何かを行う「理由」を説明し、何を行っているかではなく「どのように」を説明します

コメントを、本のスティッキーメモのように考えることができます。実際のテキストを変更することなく、追加のコンテキストと説明を提供します。

改行に endl と\nを使用する

このステップでは、C++ 出力において改行を作成する 2 つの方法:std::endlと改行文字\nについて学びます。どちらの方法も、複数行にわたる出力のフォーマットを整えるのに役立ちます。

WebIDE 内のhello.cppファイルを開き、改行を示すように修正します:

#include <iostream>

int main() {
    // std::endl を使った改行
    std::cout << "Hello, World!" << std::endl;
    std::cout << "Welcome to C++ Programming!" << std::endl;

    // \nを使った改行
    std::cout << "Using newline character:\n";
    std::cout << "Line 1\n";
    std::cout << "Line 2\n";

    // 両方の方法を混ぜて使う
    std::cout << "Mixing methods: " << std::endl;
    std::cout << "Line with endl\n";
    std::cout << "Line with newline character" << std::endl;

    return 0;
}

👆 LabEx ヒント:コードブロックの右下の「コードを説明する」をクリックして、コードの解説のために Labby AI とチャットしましょう。

改行方法を分解してみましょう:

  1. std::endl
    • 新しい行を追加します
    • 出力バッファをフラッシュします(即座に印刷されることを保証します)
    • <iostream>ライブラリの一部
    • std::coutとともに使用されます
  2. \n(改行文字):
    • 新しい行を作成する簡単な方法
    • std::endlより軽量
    • 多くのプログラミングコンテキストで機能します
    • 出力バッファをフラッシュしません

コンパイルしてプログラムを実行します:

g++ hello.cpp -o hello
./hello

実行結果の例:

Hello, World!
Welcome to C++ Programming!
Using newline character:
Line 1
Line 2
Mixing methods:
Line with endl
Line with newline character

要点:

  • std::endl\nの両方が新しい行を作成します
  • std::endlはより包括的ですが、やや遅くなります
  • \nは高速で軽量です
  • これらの方法を組み合わせて使用できます

改行を、本の段落区切りのように考えることができます。それらは、出力を整理して構造化するのに役立ちます。

セミコロンの欠落などの一般的な構文エラーを修正する

このステップでは、C++ における一般的な構文エラーについて学びます。特に、セミコロンの欠落に焦点を当てます。セミコロンは C++ において重要で、文の終わりを示します。

WebIDE でsyntax_errors.cppという新しいファイルを作成します:

cd ~/project
touch syntax_errors.cpp
#include <iostream>

int main() {
    // 一般的な構文エラー:セミコロンの欠落
    std::cout << "This line has an error"  // ここにセミコロンが欠落しています!
    std::cout << "This line will not compile" << std::endl;

    // セミコロンを含む正しいバージョン
    std::cout << "This line is correct" << std::endl;
    std::cout << "All statements end with a semicolon" << std::endl;

    return 0;  // ここもセミコロンを忘れないでください!
}

プログラムをコンパイルしてみましょう:

g++ syntax_errors.cpp -o syntax_errors

コンパイルエラーの例:

syntax_errors.cpp: In function ‘int main()’:
syntax_errors.cpp:5:42: error: expected ‘;’ before ‘std’
    5 |     std::cout << "This line has an error"  // Missing semicolon here!
      |                                          ^
      |                                          ;
    6 |     std::cout << "This line will not compile" << std::endl;
      |     ~~~

セミコロンに関する要点:

  • C++ のすべての文はセミコロン;で終わる必要があります
  • セミコロンはコンパイラに 1 つの命令が終わり、別の命令が始まる場所を伝えます
  • セミコロンが欠落するとコンパイルエラーが発生します
  • セミコロンを忘れやすい一般的な場所:
    • cout文の後
    • return文の後
    • 変数宣言の末尾

エラーを修正しましょう:

  1. 欠落しているセミコロンを追加する
  2. 各文が;で終わることを確認する

修正後のバージョンをコンパイルします:

g++ syntax_errors.cpp -o syntax_errors
./syntax_errors

成功すると、エラーメッセージは表示されません。

セミコロンを、文章の句点のように考えることができます。それらは、コード内の完全な思考の終わりを示します。

まとめ

この実験では、Ubuntu 22.04 上で C++ 用の GCC(GNU Compiler Collection)コンパイラをインストールし、必要な環境変数を設定する方法を学びます。新しい C++ ソースファイルを作成し、int main()関数を使った基本的なプログラム構造を書き、coutを使って「Hello World」メッセージを表示します。その後、g++コマンドを使ってプログラムをコンパイルし、実行します。また、単一行と複数行のコメントを追加する方法、改行にendl\nを使用する方法、セミコロンの欠落などの一般的な構文エラーを修正する方法を学びます。

これらの手順を完了すると、最初の C++ プログラムを書き、実行するための堅牢な基礎が築けます。また、Ubuntu 22.04 上で C++ 開発に必要な基本的なツールと概念を理解することができます。