イントロダクション

「C と C++ の違い」は何でしょう。
本当の意味は非常に難しく私の力のおよぶ範囲ではありませんが、表面的にはC言語に幾つかの機能を付け加えたものと言えるでしょう。
ここではC++の機能の中から「これだけは知っておいてほしい」と思うものを抜粋して説明します。 (●^o^●)

前田稔の超初心者のプログラム入門

「C言語に幾つかの機能を付け加えたものが C++ である」と言いましたが 「この幾つかの機能が曲者」で、それだけで分厚い文法書が出来上がります。 (^_^;)
今まで DOS や UNIX のC言語に親しんできた人達にとって、この厚い文法書が壁になって「C++ は難しい」と言う先入観が広がってしまいました。 (;_;)

私も最初その文法書で C++ の勉強を始めたのですが、最初の部分で嫌になって本箱の奥にしまいこんでしまいました。 (ーー;)
文法書からひもとくのも一つの方法でしょうが、ここでは「美味しい所だけつまみ食い」をしながら学んで行きましょう。 (^o^)丿

あなた方はもう既に「C++ の機能を使っている」と言えば驚かれるでしょうか?
//ここから後はコメントです。

C言語の本来のコメントは /*コメントです*/ で // は C++ の文法なのです。
あなた方も既に「美味しい所をつまみ食い」していることになります。

C言語の拡張子は [.c] で C++ の拡張子は [.cpp] が使われますが、コンパイラの種類やバージョンによっては 区別しない場合もあり、拡張子に本質的な違いはありません。
このコーナーのプログラムを作成したのは Visual C++ ver 1.5 ですが、現在のバージョン(Visual C++ .net 2005) では動かないものも出てきました。
そこでプログラムの見直しを行うと共に、コンソールモードのプログラムを整理することにします。

  1. 新規プロジェクトから、空の Console Application を作成して下さい。
    CLI のアプリケーションと通常のアプリケーションでは、作成されるプロジェクトが違います。
    詳細は「超初心者のプログラム入門(C言語 Windows)/Win32 コンソールアプリケーションを作成」を参照して下さい。
  2. [.cpp] は [.c] の拡張ですから、従来のプログラムでも使えるはずです。
    次のプログラムを [.c] と [.cpp] でコンパイルしてみましょう。
    次のソースコードを main.c の名前でプロジェクトに格納して下さい。
    #include <stdio.h>
    #include <conio.h>
    
    int main(void)
    {
        printf("Hello C++ Program\n");
        _getch();
        return 0;
    }
    
  3. 同じようにソースコードを main.cpp の名前でプロジェクトに格納して下さい。
    どちらも同じように実行されます。

  1. 今度は C++ のプログラムを [.c] と [.cpp] でコンパイルしてみましょう。
    次のソースコードを main.cpp の名前でプロジェクトに格納して下さい。
    iostream に「.h」が付けられていないことに注目して下さい。
    前のバージョンには iostream.h と iostream の両方が格納されていたのですが、Visual Studio .NET 2005 以降では iostream.h が使えなくなりました。 (^_^;)
    iostream を使う時は using namespace で std を指定して下さい。
    iostream で定義されている標準的な名前は std:: として宣言されています。
    詳細は namespace 宣言 を参照して下さい。
    //#include <iostream.h>
    #include <iostream>
    using namespace std;
    
    int main(void)
    {
        cout << "Hello C++ Program\n";
        char   c;
        cin.get(c);
        return(0);
    }
    
  2. 同じようにソースコードを main.c の名前でプロジェクトに格納して下さい。
    [.cpp] は [.c] の拡張になっていて、[.c] で C++ の機能は使えません。

Visual C++ は、ver 1.5 と ver 2.0 ではシステムが大きく変わっています。

  • 16ビットから32ビットに変わった。
  • グラフィックライブラリが無くなり、DOSアプリケーションの機能が大幅に低下した。
  • .Cで CPPの機能が使えなくなった。
  • LIBのパラメータがUNIXライクになった。
  • 32ビットに伴い near, far が廃止された。
  • また WindowsXP からエスケープシーケンスが使えなくなりました。
    さらに Windows vista からは Visual C++(ver 1.5) や従来のバッチファイルが動かなくなりました。
    CC.BAT を使うには、何か修正しなければならないようです。


    ver 1.5 までの仕様

  • [Visual C][Visual C++] の区別。
    拡張子 コンパイルの区別
    *.C C言語としてコンパイル
    *.CPP C++としてコンパイル

  • [Windows][MS/DOS] の区別。
    *.DEF ファイル コンパイルモード
    *.DEF ファイルを指定 Windowsとしてコンパイル
    *.DEF ファイル無し MS/DOSとしてコンパイル
  • ver 1.5 で動いていたグラフィックモードで点を描画するプログラムです。
    いにしえの記録として、ここに掲載しておきます。
    /*★ ドットを描画   2002-03-01  前田 稔 ★*/
    #include <stdio.h>
    #include <conio.h>
    #include <graph.h>
    
    int     main(void)
    {
        if (!_setvideomode(_VRES16EXCOLOR)) return(-1);
        _setpixel(100,50);
        _getch();
        _setvideomode(_DEFAULTMODE);
    }
    

    超初心者のプログラム入門(C/C++)