ブログ@kaorun55

HoloLensやKinectなどのDepthセンサーを中心に書いています。

C言語 に慣れた人が書く C++ のソース

C++ のソースを見てると。この人普段 C言語がメインだな?と思うソースにお目にかかることが多い。


その人の傾向も並べてみる。


アスタリスクとかアンパサンドの位置が変数寄り

C 言語がメインの人はポインタとか参照をこう書く

char &r;
char *p = &r;

C++ の人はこう書く

char& r;
char* p = &r;

全体的に const がない

3文字が好き

変数は3文字。元が4文字でも3文字の変数

  • tmp とか
  • cnt とか

変数を関数の先頭で宣言する

使うところで宣言しない。

void main()
{
    int i;
    string str1, str2;
    for ( i = 0; i < 10; ++i ) {
        ごにょごにょ
    }

    ごにょごにょ

    str1 = "abc";

    ごにょごにょ

    str2 = "efg";
}

使うところで宣言しようよ。

void main()
{
    for ( int i = 0; i < 10; ++i ) {
        ごにょごにょ
    }

    ごにょごにょ

    string str1 = "abc";

    ごにょごにょ

    string str2 = "efg";
}
これにはまりすぎると

C++ のどこでも宣言に染まったワタクシは C言語でもこう書きます

void main()
{
    {
        for ( int i = 0; i < 10; ++i ) {
            ごにょごにょ
        }
    }

    ごにょごにょ

    {
        char str[] = "abc";
    }

    ごにょごにょ

    {
        char str[] = "efg";
    }
}

C 言語の変数宣言のルールは関数の先頭ではなく、スコープの先頭だから宣言したい区切りでスコープを作って上げればいい

とりあえずこんなとこ

あと C++ の例外に染まったワタクシは C言語でも goto を使って、例外処理します。
#でないと、リソースのリークが怖いもん。。。