簡體   English   中英

如何將變量從基類初始化列表添加到派生初始化列表?

[英]How to add variable to derived initialization list from base class initialization list?

我有一個帶有參數化構造函數的基類 ShowTicket:

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

我正在創建一個派生類 SportTicket,它將采用與 ShowTicket 相同的參數,但會添加一個新的布爾值來跟蹤 beer_sold。 問題是我不知道如何告訴 C++ 我仍然希望在 SportTicket 構造函數中將 sold_status 初始化為 false。

我試過這樣做:

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

但我收到以下錯誤消息:

成員初始值設定項“sold_status”未命名非靜態數據成員或基類

sold_satus 是否已經初始化為 false,因為該變量是從基類初始化列表繼承的,還是我可以使用不同的語法將此變量帶入派生類?

ShowTicket類的構造函數本身將其數據成員sold_status初始化為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}
{}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM