[英]Overloading copy constructor with delete and then calling the default constructor of a subclass in C++
我試圖通過行Card(const Card&) = delete;
來禁用或更確切地說刪除父類Card的副本構造Card(const Card&) = delete;
當我調用Quartz* qu = new Quartz();
在主要我得到默認構造函數被刪除的錯誤? 我發現這很令人困惑,因為我不認為我在Card中定義了默認構造函數,而是在復制構造函數中重載了。 任何解釋或解決方法對此表示贊賞。
class Card {
public:
Card(const Card&) = delete;
};
class Quartz : public Card {
public:
Quartz() = default;
};
int main() {
Quartz* qu = new Quartz();
}
如果類沒有其他構造函數,則僅隱式定義默認構造函數。 由於定義了副本構造函數,因此現在還需要顯式定義默認構造函數。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.