1 of 17

C++講座

2 of 17

もくじ

  • 第1章『基本』� 第一の壁:配列と繰り返し�
  • 第2章『クラス』� 第二の壁:ポインタ�
  • 第3章『継承』� 第三の壁:ポリモーフィズム

3 of 17

第1章『基本』

第一の壁�配列と繰り返し

4 of 17

文字を表示するだけの例

#include <iostream>

using namespace std;

int main(){

cout << "ぴんくりの大冒険" << endl;

}

入出力ライブラリ「iostream」を�インクルードする。�DXライブラリを使うなら不要。

「std」を省略。�coutやstringは本当は�std::cout、std::stringと書く。

main関数�プログラムはここからスタートする。

cout:文字出力

endl:改行

5 of 17

変数について

「変数」はデータを格納しているもの。

変数の形を「型」という。

[基本になる型]

  • int … 整数型(整数値を入れる)
  • double … 実数型(実数値を入れる)
  • bool … 論理型(trueとfalseの二通り)
  • string … 文字列型(文字列を入れる)

6 of 17

変数の宣言

「変数」は型を宣言し、名前を付けられる。

整数型のaを宣言する ⇒ int a;

文字列型のmojiを宣言する ⇒ string moji;

int型の例 : a = 100 / 2 + 50;

string型の例 : moji += “ぴんくり”;

7 of 17

変数の図的イメージ

100

200

300

c a b

c = a + b;

3.141592

double d = 3.141592;

d

8 of 17

変数のキャスト

c a

123.456

double a = 3.141592; �int c = a;

異なる型の変数を代入できる?

9 of 17

変数のキャスト

123

c a

123.456

double a = 3.141592; �int c = (int)a;

異なる型の値を無理やり入れるには

型の「キャスト」を行う。

例)doubleをintにキャストする。

10 of 17

配列変数

a[0] a[1] a[2] a[3] a[4]

int a[5];�a[0] = 1; a[1] = 2; a[2] = 3;�a[3] = 4; a[5] = 5;

1

2

3

4

5

初期化でのみこうも書ける。�int a[] = {1, 2, 3, 4, 5};

11 of 17

配列変数

a[0] a[1] a[2] a[3]

int a[4][3];

要素数をさらに付け加えることで�多次元配列も作れる。

a[0][0]

a[1][0]

a[2][0]

a[3][0]

a[0][1]

a[1][1]

a[2][1]

a[3][1]

a[0][2]

a[1][2]

a[2][2]

a[3][2]

12 of 17

条件分岐

int a = 2; // aに2をセットして宣言

if(a == 1){

// a=1のとき

}else if(a == 2){

// そうでなくてa=2のとき

}else{

// それ以外

}

13 of 17

条件分岐で使える記号

a == b : aとbが等しい(a=b)

a != b : aとbが等しくない(a≠b)

a >= b : aがb以上(a≧b)

a <= b : aがb以下(a≦b)

a > b : aがbより大きい(a>b)

a < b : aがbより小さい(a<b)

!p : 条件pじゃない

p && q : 条件pかつ条件q

p || q : 条件pまたは条件q

14 of 17

繰り返し

for(int i = 0; i < 5; i++){

cout << “カウンタ:” << i << endl;

}

i=0:

i=1:

i=2:

i=3:

i=4:

表示「カウンタ:0」

表示「カウンタ:1」

表示「カウンタ:2」

表示「カウンタ:3」

表示「カウンタ:4」

int i = 0;

初期値(最初に行う処理)

i < 5

ループ条件�(この条件の間繰り返す)

i++

再初期化

(繰り返す度に行う処理)

15 of 17

繰り返し

for(int i = 0; i < 5; i++){

if(i == 2){

continue;

}

if(i == 4){

break;

}

cout << “カウンタ:” << i << endl;

}

出力:

カウンタ:0

カウンタ:1

カウンタ:3

continue(スキップ)

以降の処理を行わず

forの初めに戻る

break(ループ脱出)

forの継続条件に関わらず

そのforループから脱出

16 of 17

繰り返し

配列の要素番号に繰り返しを導入する。

int a[100];

for(int i = 0; i < 100; i++){

a[i] = i + 1;

}

a[0] a[1] …… a[99]

1

2

100

17 of 17