★C言語との違い★


最初はC言語とC++の違いについて説明します。

実行環境については、C言語の時と何も変わりません。

コンソールアプリケーションの作成を通して、C++について書いていきます。

※これまでのC言語のプログラムと組み合わせて使う事が出来ますので、色々試しながらやってください。

C++はオブジェクト指向言語と呼ばれており、C言語とは様々な違いがあるのですが、ちょっとした事から説明していきます。


関数引数のvoid


C++では、引数無しの場合の「void」を省略可能です。

例えば、引数無しのmain関数は↓のようになります。

<sample program cpp001-01>

int main()
{
    return 0;
}

変数宣言


C言語編にも書いた事がありますが、変数宣言はプログラムの途中でも書く事が出来ます。

例えば、

<sample program cpp001-02>

int main()
{
    int a;

    a = 3;

    int b;

    b = a + 5;

    int c;

    c = a + b;

    return 0;
}

も大丈夫ですし、

<sample program cpp001-03>

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

    }

    return 0;
}

このように、for文の中でも変数宣言が出来ます。


bool型


C++にはbool型という型があります。

bool型には、true(真)とfalse(偽)という2つの値が格納できます。

フラグをイメージしてもらえれば分かりやすいと思います。

<sample program cpp001-04>

int main()
{
    bool bFlag;

    bFlag = true;

    if (bFlag) {
        bFlag = false;
    }

    return 0;
}

↑のように、if文と組み合わせて使ったり関数の戻り値として使います。


コメント


C言語のコメントは「/*」から「*/」の間に記述していました。

C++では、「//」が追加されています。

「//」は一行のコメントを記述する際に使います。

<sample program cpp001-05>

/*
コメント
コメント
*/

int main()
{
    //コメント

    return 0; //コメント
}

#define


#defineもC++では別の方法が用意されています。

#defineには型やスコープの概念も無く、副作用もある事からC++ではあまり使いません。

単純な定数の置き換えであれば、「const」を使います。

#define SUIT 4

と書く代わりに、

const int SUIT = 4;

と書きます。

こうすれば「型はint型」という事がはっきりします。

また、

static const int SUIT = 4;

と書く事で、スコープも決まります。

※関数内で書けば「ローカルスコープ」、関数外で書けば「ファイルスコープ」

const int SUIT = 4;
const int NUMBER = 13;
const int CARD = SUIT * NUMBER;

と書くと「置き換えによる副作用」もありません。

※マクロについても別の方法があります。


構造体


C++の構造体も色々と変わっているのですが、最初なのでちょっとした事だけ書いておきます。

C++では、typedefで型定義をしなくても「struct」が省略出来るようになりました。

<sample program cpp001-06>

struct Player {
    int hp;
    int mp;
};

int main()
{
    Player player;

    return 0;
}

ヘッダファイル


C言語のヘッダファイルは「〜.h」と言う名前でインクルードしていました。

C++では、「.h」は無くなりヘッダファイルの名前の前に「c」を付けるようになりました。

主に使ってきたヘッダファイルを書いておきます。

  stdio.h → cstdio

  stdlib.h → cstdlib

  string → cstring

  time.h → ctime

などです。


とりあえずは、これくらいにしておきましょう。


次へ

戻る

目次へ