首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >C++类-对象数组

C++类-对象数组
EN

Stack Overflow用户
提问于 2013-12-06 17:39:52
回答 2查看 525关注 0票数 2

我必须为一家电影院设计一个售票系统,它只有50个座位(5排10个座位)

我已经得到了下面的影院类,这不应该被修改

代码语言:javascript
复制
class Cinema{
    private:
        Ticket ticket[50]; // not sure what it is going on
    public:
        Cinema(); //constructor
        double purchaseTicket(int); // ticket ID as parameter, check if it is available, if so update it as unavailable. If not, return 0.
        void listAll();
};

这是Ticket类

代码语言:javascript
复制
class Ticket{
    private:
        int ID[50]; //ticket ID (correct to store data in array?)
        int price; // ticket price
        // have to provide set and get function for ID and price, have no idea even I've googled on this topic 
        bool available[50]; // availability of ticket
    public:
        Ticket(); //constructor
        bool status(int); // return availability of ticket
        void setAvailable(int); //update status of ticket as available
        void buy(int); //update status of ticket as unavailable
};

这是模拟购买票证功能的主函数(给定)

代码语言:javascript
复制
int main(){
    Cinema myCinema;
    myCinema.listAll(); // available seats print "O", otherwise print "X"

    //simulate to purchse ticket 15, 16, 17
    double price = 0;
    price += myCinema.purchaseTicket(15);
    price += myCinema.purchaseTicket(16);
    price += myCinema.purchaseTicket(17);

    cout <<"\nTotal Price: $" << price << endl << endl;

    //print the current status
    myCinema.listAll();

    return 0;
}

谁能告诉我"Ticket ticket50;“的用法?这让我很困扰,很多步骤都无法完成。

并告诉我票证类中是否有任何问题。

EN

回答 2

Stack Overflow用户

发布于 2013-12-06 17:50:45

每个座位都有一张票。因此,有50张门票需要购买。这是一种有点奇怪的看待事物的方式,但我认为你可以认为“ticket”是“seat”的同义词。

您的票证类别有误。记住,一个票证对象代表一个单独的票证(代表一个单独的座位)。因此,一个票证具有一个id和一个可用性。因此,ticket类中的数组是错误的。

代码语言:javascript
复制
class Ticket{
    private:
        int ID; //ticket ID 
        int price; // ticket price
        bool available; // availability of ticket
    public:
        ...
};

setters和getter是微不足道的

代码语言:javascript
复制
int Ticket::getPrice() const { return price; }
void Ticket::setPrice(int p) { price = p; }

在可用性方面类似。

刚刚注意到Cinema::purchaseTicket返回一个double,为什么我不知道。

票数 0
EN

Stack Overflow用户

发布于 2013-12-06 17:51:31

票证数组是影院的私有成员,不能直接使用。您只能使用类中提到的购买函数进行访问。因为该类不应该被修改,所以这是唯一的方法。(注意: ID成员的整数数组是错误的,请仅使用整数)。

但是,如果要修改该类以将票证ticket50设置为公共,

有关如何使用它的示例如下所示

myCinema.ticket.ID来访问第一个票证的ID (最好使用字符数组来存储票证ID,否则只是整数数组是错误的)

通过点运算符访问所需的成员。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/20420591

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档