我试图通过创建一个使用52个“卡片”类对象数组的“卡片组”类来创建卡片组。该数组需要动态分配,但是我无法弄清楚创建它的语法。我的代码给出了此错误:


  错误C2512:“卡”:没有适当的默认构造函数


#include "CardDeck.h"
#include "Card.h"
#include <iostream>
#include <cstdlib>
using namespace std;

CardDeck::CardDeck()
{

    *Deck = new Card[52];

}


我很好奇我是否能够使用我的
Card :: Card(char a,char b)构造函数,或者如果我必须首先使用默认构造函数创建数组。

最佳答案

要创建类似Card的卡片数组,必须具有默认构造函数

class Card
{
public:
    Card(); // default cosntructor
    ...
};


原因是需要一个默认的构造函数来将初始值赋予数组。

正如juanchopanza所说,您应该改用vector,但是仍然会有同样的问题。

正如本所说,#include "Card.cpp"也是错误的。

另外这条线看起来可疑

*Deck = new Card[52];


为什么要取消引用Deck?几乎可以肯定,这也是错误的。我将显示更多代码。似乎您有很多错误。

10-07 19:30
查看更多