Class

CLI で従来の標準的な Class と Maneged Mode の ref Class を動かします。
CLI を使えば「ソースプログラム一本」だけで動きます。

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

従来の標準的な Class

  1. C:\DATA\Cpp\BAT\Console に Class.cpp を utf-8(BOM 有り)でタイプして格納して下さい。
    /*★ Normal Class GcmLcm のサンプル  前田 稔 ★*/
    #include <stdio.h>
    #include <conio.h>  //_getch();
    
    class GcmLcm
    {
      private:
        int     w1,w2;
    
      public:
        int gcm(int v1, int v2)
        {
            w1 = v1;
            w2 = v2;
            while(w1 != w2)
            {   if (w1 > w2)    w1-= w2;
                else            w2-= w1;
            }
            return w1;
        }
    
        int lcm(int v1, int v2)
        {
            return v1*v2/gcm(v1,v2);
        }
    };
    
    int main()
    {
        int     x = 32;
        int     y = 24;
        GcmLcm  *gcmlcm;
    
        gcmlcm = new GcmLcm();
        printf("%d と %d の GCM は %d で、LCM は %d です",
                x,y,gcmlcm->gcm(x,y),gcmlcm->lcm(x,y));
        delete gcmlcm;
        _getch();
        return 0;
    }
    
  2. スタートメニューから[すべてのプログラム][Visual C++ 2005 Express Edition][Visual Studio Tools] [Visual Studio 2005 コマンド プロンプト] から起動します。
  3. 次のコマンドをタイプして下さい。
    C:\Users\maeda>CD C:\DATA\Cpp\BAT
    C:\DATA\Cpp\BAT>CL Class.cpp
    C:\DATA\Cpp\BAT>Class.exe
    
  4. 32 と 24 の GCM と LCM が表示されます。
    #include <conio.h> と _getch(); は印字の確認のためで、必要なければ削除して下さい。
    GCM, LCM の説明は Gcm Lcm の説明 を参照して下さい。
    Class.exe はネイティブ・コードで、サイズは 57,344 バイトでした。

Maneged ref Class

  1. 同じプログラムを Maneged Mode の ref Class で作成します。
    C:\DATA\Cpp\BAT\Console に RefClass.cpp を utf-8(BOM 有り)でタイプして格納して下さい。
    /*★ Ref Class GcmLcm のサンプル  前田 稔 ★*/
    using namespace System;
    
    ref class GcmLcm
    {
      private:
        int     w1,w2;
    
      public:
        int gcm(int v1, int v2)
        {
            w1 = v1;
            w2 = v2;
            while(w1 != w2)
            {   if (w1 > w2)    w1-= w2;
                else            w2-= w1;
            }
            return w1;
        }
    
        int lcm(int v1, int v2)
        {
            return v1*v2/gcm(v1,v2);
        }
    };
    
    int main()
    {
        GcmLcm^ gcmlcm;
        int     x = 32;
        int     y = 24;
    
        gcmlcm = gcnew GcmLcm();
        Console::WriteLine("{0} と {1} の GCM は {2} で、LCM は {3} です",
            x,y,gcmlcm->gcm(x,y),gcmlcm->lcm(x,y));
        delete gcmlcm;
        System::Console::ReadLine();
        return 0;
    }
    
  2. スタートメニューから[すべてのプログラム][Visual C++ 2005 Express Edition][Visual Studio Tools] [Visual Studio 2005 コマンド プロンプト] から起動します。
  3. 次のコマンドをタイプして下さい。
    C:\Users\maeda>CD C:\DATA\Cpp\BAT
    C:\DATA\Cpp\BAT>CL /clr RefClass.cpp
    C:\DATA\Cpp\BAT>RefClass.exe
    
  4. 標準的な Class と同様に 32 と 24 の GCM と LCM が表示されます。
    Maneged Mode の RefClass.exe のサイズは半分以下になります。
    RefClass.exe はネイティブ・コードでは無く、マシンに依存しない中間コードです。
    ファイル名 サイズ 説明
    Class.exe 57,344 byte Native Code(CL Class.cpp)
    RefClass.exe 23,040 byte CLI Code(CL /clr RefClass.cpp)
    RefClass.exe.manifest 383 byte CLI のとき作成される

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