程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> 更多編程語言 >> 編程綜合問答 >> c++ 類的指針數組-如何使用類指針數組實現以下的代碼??

c++ 類的指針數組-如何使用類指針數組實現以下的代碼??

編輯:編程綜合問答
如何使用類指針數組實現以下的代碼??

編寫一個游戲平台。功能描述:
程序啟動後,顯示游戲列表(至少有三個游戲)
游戲1
游戲2
游戲3
用戶選擇其中一個游戲後,進入該游戲。游戲結束後,回到游戲列表。游戲列表按照游戲訪問量動態排序。
定義游戲1類、游戲2、游戲3類,公有繼承自CGame。游戲類自行設計,必須提供void start()作為游戲入口。
上面的要求如何實現???

 #include<iostream>
#include<algorithm>
using namespace std;
class Game
{
private:
    char* name;
    int visitCount;
public:
    Game()
    {
        visitCount = 0;
    }
    int GetVisitCount()
    {
        return visitCount;
    }
    void addvisitCount();
     void ShowName();
    virtual void start() = 0;
};
void Game::ShowName()
{
    cout << name << endl;
}
class GGame1:public Game
{
private:
public:
    virtual void start();
};
void GGame1::start()
{
    cout << "歡迎進入游戲" << endl;
}
class GGame2:public Game
{
private:
public:
    virtual void start();
};
void GGame2::start()
{
    cout << "歡迎進入游戲" << endl;
}
class GGame3:public Game
{
private:
public:
    virtual void start();
};
void GGame3::start()
{
    cout << "歡迎進入游戲" << endl;
}
bool cmp(Game& a,Game& b)
{
    return a.GetVisitCount() > b.GetVisitCount();
}
void menu(Game& gaems) // 顯示游戲列表
{
    for (int i = 0; i < 3; i++) (gaems).ShowName();
}
int main()
{
    Game *games[3];
    games[0] = new GGame1;//為什麼可以用基類指針數組來new一個派生類??
    games[1] = new GGame2;
    games[2] = new GGame3;
    do
    {
        /*sort(games,games+3,cmp);  將游戲列表按訪問量排序*/
        //如何實現類指針數組的排序??
        menu(games);
        int choice;
        cin >> choice;
        // 用戶輸入選擇
        if (choice >= 0 && choice <= 2)
        {
            int i = choice;
            (*games)[i].start();
        }
        else
        {
            break; // 退出系統
        }
    } while (true);
}

最佳回答:


對不起,我逗比了,基類指針指向派生類可以但是不能訪問派生類自己的函數。
改的話,派生類不用再virtual了,(有應該也沒錯),直接void start()就好,然後還是按我上面說的改就好了。
然後那個基類不一定要是純虛函數

qq_18738333
qq_18738333
zsc2014030403015
  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved