C++ とは何か
C++ は Bjarne Stroustrup によって 1979 年にベル研究所で開発されたプログラミング言語です。この言語は C 言語を拡張し、オブジェクト指向プログラミング(OOP)の機能を追加したものです。C++ は Windows、macOS、Linux などさまざまなプラットフォームで動作します。
C++ は静的型付け・コンパイル型の汎用言語であり、手続き型、オブジェクト指向、およびジェネリックプログラミングをサポートします。言語として「中級」と評価されるのは、高水準言語の抽象性と低水準言語のハードウェア制御能力を併せ持つためです。
当初は「C with Classes」と呼ばれていましたが、1983 年に C++ という名称に変更されました。C++ は C 言語のスーパーセットであり、標準的な C コードはそのまま C++ でも有効です。
静的型付け言語では、型チェックがコンパイル時に実行されます。これにより実行時のエラーを未然に防ぐことができます。
基本構文と概念
C++ プログラムは、相互にメソッドを呼び合うオブジェクトの集合として構成されます。以下に主要な用語を示します。
- クラス (Class): オブジェクトの設計図。状態(データ)と振る舞い(関数)を定義します。
- オブジェクト (Object): クラスから生成されたインスタンス。例:犬のオブジェクトは「色」「名前」「品種」などの状態を持ち、「吠える」「食べる」などの行動を実行できます。
- メソッド (Method): クラス内に定義された関数。オブジェクトの振る舞いを実装します。
- インスタンス変数 (Instance Variable): 各オブジェクト固有のデータメンバ。オブジェクトの状態はこれらの値によって決まります。
最小限のプログラム例
#include <iostream>
int main() {
std::cout << "Hello World" << std::endl;
return 0;
}
基本データ型
| 説明 | 型名 |
|---|---|
| 真偽値(true/false) | bool |
| 単一文字 | char |
| 整数 | int |
| 単精度浮動小数点数 | float |
| 倍精度浮動小数点数 | double |
| 戻り値なし | void |
※ 整数型の範囲: long long > long > int
入出力操作
入力
// C++ ストリームによる入力
int value;
std::cin >> value;
// C 標準ライブラリによる入力(注意:型指定子に注意)
scanf("%d", &value); // int
scanf("%ld", &long_val); // long
scanf("%lld", &ll_val); // long long
scanf("%f", &float_val); // float
scanf("%lf", &double_val); // double
scanf("%c", &char_val); // char
scanf("%s", str_array); // 文字列(char[])
出力
// C++ ストリーム
std::cout << value << std::endl;
// C 標準ライブラリ
printf("%d\n", value);
printf と scanf は書式指定子が一致する必要がありますが、printf ではアドレス演算子 & を使用しません。