[英]Order of calling base class constructor from derived class initialization list
[英]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.