如何从基类初始化列表中添加变量到派生的初始化列表?

发布于 2025-02-01 03:40:23 字数 706 浏览 2 评论 0原文

我有一个带有参数化构造函数的基类展示:

    //constructor
        ShowTicket(const char* Row, const char* SeatNumber):
        sold_status{false},
        row(Row),
        seat_number(SeatNumber)
        {}

我正在创建一个派生的类SportTicket,它将采用与ShowTicket相同的参数,但会增加一个新的布尔值,以跟踪Beer_sold。问题是我不知道如何告诉C ++我仍然希望Sold_status在SportTicket构造函数中被Intialial Intialial to false。

我尝试这样做:

    //Constructor
    SportTicket(const char* Row, const char* SeatNumber):
    ShowTicket(Row, SeatNumber),
    beer_sold{false},
    sold_status{false}
    {}

但是我收到以下错误消息:

成员初始化器“已sold_status'不命名非静态数据成员或base类

已出售为false,因为该变量是从基类的初始化列表中继承的,或者在那里。我可以用来将此变量带入我的派生类中的不同语法?

I have a base class ShowTicket with parameterized constructor:

    //constructor
        ShowTicket(const char* Row, const char* SeatNumber):
        sold_status{false},
        row(Row),
        seat_number(SeatNumber)
        {}

I am creating a derived class, SportTicket that will take the same parameters as ShowTicket but will add a new boolean value to keep track of beer_sold. The problem is I do not know how to tell C++ that I still want sold_status to be intialized to false in the SportTicket Constructor.

I tried doing this:

    //Constructor
    SportTicket(const char* Row, const char* SeatNumber):
    ShowTicket(Row, SeatNumber),
    beer_sold{false},
    sold_status{false}
    {}

But I received the following error message:

Member initializer 'sold_status' does not name a non-static data member or base class

Is sold_satus already initialized to false because the variable is inherited from the base classes initialization list or is there a different syntax I can use to bring this variable into my derived class?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

我不是你的备胎 2025-02-08 03:40:23

showticket本身的构造函数本身将其数据成员sold_status to false

//constructor
    ShowTicket(const char* Row, const char* SeatNumber):
    sold_status{false},
    row(Row),
    seat_number(SeatNumber)
    {}

因此在派生类中只需删除该行,

sold_status{false}

因为它不正确且冗余。

//Constructor
SportTicket(const char* Row, const char* SeatNumber):
ShowTicket(Row, SeatNumber),
beer_sold{false}
{}

The constructor of the class ShowTicket itself initializes its data member sold_status to false

//constructor
    ShowTicket(const char* Row, const char* SeatNumber):
    sold_status{false},
    row(Row),
    seat_number(SeatNumber)
    {}

So in the derived class just remove the line

sold_status{false}

because it is incorrect and redundant.

//Constructor
SportTicket(const char* Row, const char* SeatNumber):
ShowTicket(Row, SeatNumber),
beer_sold{false}
{}
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文