2

これを修正する方法について誰かアイデアがありますか? オンラインでビジュアル C++ の設定を変更しましたが、それでも機能しません。

class store
{
public:
    int MainMenu();
    store();
private:
    int main;
};

class customer:store
{
public:
    int CustomerMenu();
    customer();
private:
    int cmenu;
};

class employee:store
{
public:
    int EmployeeMenu();
    employee();
private:
    int emenu;

};

int main()
{
    int main;
    store a;
    customer b;
employee c;
a.MainMenu();
if(main = 1)
{
    c.EmployeeMenu();
}
else if(main = 2)
{
    b.CustomerMenu();
}
else
{
    exit(EXIT_SUCCESS);
}
}

int MainMenu()
{
    int main;
cout << "Choose an option: " << endl;
cout << " 1. Administration menu" << endl;
cout << " 2. Customer menu" << endl;
cout << " 3. Exit the program" << endl;
cin >> main;
return main;
}

int CustomerMenu()
{
int cmenu;
cout << " 1. Search Video" << endl;
cout << " 2. View Video Titles" << endl;
cout << " 3. Rent Video" << endl;
cout << " 4. Exit to the Main Menu" << endl;
cout << " 5. Exit the program" << endl;
cin >> cmenu;
return cmenu;

}

int EmployeeMenu()
{
int emenu;
    cout << " 1.  Store Information menu" << endl;
    cout << " 2.  Merchandise Information menu" << endl;
    cout << " 3.  Category Information menu" << endl;
    cout << " 4.  Customer Information menu" << endl;
    cout << " 5.  Employee Information menu" << endl;
    cout << " 6.  Rent a Video" << endl;
    cout << " 7.  Restock Video" << endl;
    cout << " 8.  Sales menu" << endl;
    cout << " 9.  Exit to Main Menu" << endl;
    cout << " 10. Exit the program" << endl;
cin >> emenu;
return emenu;

}

store::store()
{
main = 0;
}

customer::customer()
{
cmenu = 0;
}

employee::employee()
{
emenu = 0;
}

それは私に与えます:

Store.obj : error LNK2019: unresolved external symbol "public: int __thiscall customer::CustomerMenu(void)" (?CustomerMenu@customer@@QAEHXZ) referenced in function _main
1>Store.obj : error LNK2019: unresolved external symbol "public: int __thiscall employee::EmployeeMenu(void)" (?EmployeeMenu@employee@@QAEHXZ) referenced in function _main
1>Store.obj : error LNK2019: unresolved external symbol "public: int __thiscall store::MainMenu(void)" (?MainMenu@store@@QAEHXZ) referenced in function _main
4

3 に答える 3

4

クラスメンバーではなく、通常の関数としてCustomerMenu()andを実装しています。EmployeeMenu()実装は次のようにする必要があります。

int customer::CustomerMenu()
{
...

int employee::EmployeeMenu()
{
...
于 2013-06-02T21:16:24.660 に答える
1
if(main = 1)
{   //^^should be ==, same as the one below
    c.EmployeeMenu();
}
else if(main = 2)
{
    b.CustomerMenu();
}

メンバー関数は、スコープ解決演算子で定義する必要があります。

int CustomerMenu()

次のようにする必要があります。

int Customer::ustomerMenu()

マイナーポイント:

class employee:store

ここで を使用private inheritanceしましたが、本当に必要かどうかを考える必要があります。

于 2013-06-02T21:16:04.067 に答える
1

メンバー関数の実装を正しく定義する必要があります。例えば:

int CustomerMenu()

次のようにする必要があります。

int  customer::CustomerMenu(void)

などなど。

于 2013-06-02T21:16:29.013 に答える