11029


アルゴリズムとデータ構造という書籍を買い、下記よりC/C++のソースコードをダウンロードしました。  
<http://www.sbcr.jp/books/img/takarabako/>

以前した質問（[CのソースコードをVisual Studio
Expressを利用してコンパイル・実行したい](https://ja.stackoverflow.com/questions/2981/c%E3%81%AE%E3%82%BD%E3%83%BC%E3%82%B9%E3%82%B3%E3%83%BC%E3%83%89%E3%82%92visual-
studio-
express%E3%82%92%E5%88%A9%E7%94%A8%E3%81%97%E3%81%A6%E3%82%B3%E3%83%B3%E3%83%91%E3%82%A4%E3%83%AB-%E5%AE%9F%E8%A1%8C%E3%81%97%E3%81%9F%E3%81%84)）の回答と同様に、

> cl list2-6.cpp enter

とすると、

> /out:list2-6.exe  
>  list2-6.obj  
>  LINK : fatal error LNK1561: エントリー ポイントを定義しなければなりません。

という表示が出てきて上手くコンパイルできません。  
どこで問題が生じているか教えていただけないでしょうか？  
ちなみに list2-6.cpp は以下のようなコードです。

[code]

    // ＜C++版蔵書検索＞
    // ※インクルードファイルやmain()関数はC言語版と同じ
    
    // 蔵書クラス
    class CBook
    {
    public:
        char *title;
        char *author;
        int bookID;
        int available;      /* 貸し出し中なら0，そうでなければ1 */
    
        // 比較演算子のオーバロード
        // sortbook()のなかでCBookどうしを比較
        bool operator<(CBook&book)
        {
            return bookID<book.bookID;
        }
        bool operator>(CBook&book)
        {
            return bookID>book.bookID;
        }
        // int型へのキャストをオーバロード
        // searchbook()のなかでkeyとbookIDを比較
        operator int()
        {
            return bookID;
        }
    };
    
    #define N 5
    
    CBook*bookarray[N];     /* 蔵書データのポインタの配列 */
    
    /* 蔵書のデータを初期化する */
    void initdata()
    {
        int n;
    
        for(n=0;n<N;++n)
            bookarray[n]=new CBook;
    
        bookarray[0]->title="book0";
        bookarray[1]->title="book1";
        bookarray[2]->title="book2";
        bookarray[3]->title="book3";
        bookarray[4]->title="book4";
    
        bookarray[0]->author="author0";
        bookarray[1]->author="author1";
        bookarray[2]->author="author2";
        bookarray[3]->author="author3";
        bookarray[4]->author="author4";
    
        bookarray[0]->bookID=1000;
        bookarray[1]->bookID=502;
        bookarray[2]->bookID=731;
        bookarray[3]->bookID=628;
        bookarray[4]->bookID=1;
    
        bookarray[0]->available=1;
        bookarray[1]->available=0;
        bookarray[2]->available=0;
        bookarray[3]->available=1;
        bookarray[4]->available=1;
    }
    
    /* 蔵書データのメモリを解放 */
    void cleanupdata()
    {
        int n;
        for(n=0;n<N;++n)
            delete bookarray[n];
    }
    
    /* 本のデータをbookIDの順に昇順でクイックソートする */
    void sortbook(int bottom,int top)
    {
        int lower,upper;
        CBook *div,*temp;
    
        if(bottom>=top)
            return;
    
        div=bookarray[bottom];  /* 適当な基準値を選択 */
        for(lower=bottom,upper=top;lower<upper;)
        {
            // オブジェクトの大小を直接比較
            while(*bookarray[lower]<*div)
                ++lower;
            while(*bookarray[upper]>*div)
                --upper;
            if(lower<upper)
            {
                /* データ（へのポインタ）の順番を入れ替える */
                temp=bookarray[lower];
                bookarray[lower]=bookarray[upper];
                bookarray[upper]=temp;
                ++lower;
                --upper;
            }
        }
        sortbook(bottom,upper);
        sortbook(upper+1,top);
    }
    
    /* booksのなかからbookIDがkeyと一致するデータをバイナリサーチで
        検索して，その添え字を返す。見つからなければ-1を返す */
    int searchbook(CBook *books[],int size,int key)
    {
        int left,mid,right;
    
        left=0;
        right=size;
        while(left<right)
        {
            mid=(left+right)/2;
            if(*books[mid]<key)     // CBookのbookIDとkey を比較
                left=mid+1;
            else
                right=mid;
        }
        if(*books[left]==key)       // 同上
            return left;
    
        return -1;      /* 見つからなかった場合 */
    }
    
[/code]

（追記）

[code]

    // ＜C++版蔵書検索＞
    // ※インクルードファイルやmain()関数はC言語版と同じ
    
[/code]

とあるように、この部分のコードが抜けていたのが原因でした。


CC BY-SA 3.0
2015-06-06T03:30:20.703
11027
2015-06-06T04:07:08.067
2017-04-13T12:52:38.920
-1
5363
question
c++ visual-studio
C++のソースコードをVisual Studio Expressを利用してコンパイル・実行したい


> C++ Source をコンパイル＆実行する方法を教えてください。

とのことですが、main()関数が見当たりません。何を実行したいとお考えなのでしょうか？


CC BY-SA 3.0
2015-06-06T03:58:05.467
11029
2015-06-06T03:58:05.467
4236
11027
answer