2016-06-01 23 views
-5

私はC++プログラムをコンパイルしていますが、意味のないコード行が続いていて、「メニューの定義が未定義です」と書かれています。私は.hファイルと.cppファイルを持っています。メニュー機能は.hファイルで、.cppファイルに、私は.hファイルを先頭に含めて定義されています。これは私のメニュー機能を実装する場所です。そして、はい、私はそれらを同時にコンパイルしていますエラー:「 'main'への未定義の参照」

ヘッダファイル
#include <iostream> 
#include <cctype> 
#include <fstream> 
using namespace std; 

/* 
struct dog_park 
{ 
    char * name; 
    char * location; 
    char * description; 
    char * fence; 
    char * size; 

}; 
*/ 
class parks 
{ 

    public: 
     struct dog_park 
     { 
     char * name; 
     char * location; 
     char * description; 
     char * fence; 
     char * size; 
     }; 
     parks(); 
     int menu(); 
     bool display_all(); 
     void add_park(); 
     bool search_park(); 
     ~parks(); 

    private: 
     dog_park * all_parks; 
     int length; 


}; 
.cppファイルmain機能を必要とします(通常のホストされた実装のため)が
//implementation of functions 

#include "cs162_parks.h" 

parks::parks() 
{ 
    all_parks = new dog_park[length]; 

} 

//allows for user to select what action to take 
int parks::menu() 
{ 
    int choice = 0; 
    cout << "Welcome to the menu, your choices to choose from are: " << endl << endl; 
    cout << "1. Add a dog park to list" << endl; 
    cout << "2. Search for specific park by name" << endl; 
    cout << "3. Display all dog parks" << endl; 
    cout << "4. Quit" << endl << endl; 
    cout << "What menu selection do you choose? (1-4): "; 
    cin >> choice; 
    cin.ignore(100, '\n'); 

    return choice; 
} 

parks::~parks() 
{ 
    if (all_parks) 
     delete [] all_parks; 
} 
+1

あなたは私たちに推測されている、氏NewbieOverHere。可能な限り小さな形で問題を再現しないでください(無関係のものは削除しても問題は解決しません)。また、コンパイルに使用しているコマンドラインだけでなく、ファイルの内容も投稿してください。 – slezica

+4

質問に関連するコードを含めてください。また、Stack Overflowへようこそ!ご質問を改善したい場合は、http://stackoverflow.com/help/how-to-askをご覧ください。 – thesecretmaster

+0

"*これは私のメニュー機能を実装する場所です*" OK、しかし 'main'はどこに実装しますか?あなたはそれをまったく実装するのを忘れましたか? "*はい、私は同時にそれらをコンパイルしています*"何 "*彼ら*"?あなたは1つのcppファイルしか言及していません。 – user2079303

答えて

0

すべてのC++プログラム。それは次のようになります。プログラムの実行時に

int main() 
{ 
    // Top level statements 
} 

mainが自動的に呼び出されます。

準備の一部は、mainより前に行う必要があります。これらには、プログラマーが指定したものも含まれます。したがって、mainの呼び出しは、プログラムで最初に起きることではありません。つまり、mainはプログラムのマシンコードレベルのエントリポイントではありませんが、それは主なものです。

関連する問題