类中使用的类对象数组

时间:2013-05-03 06:12:25

标签: c++ class

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

  

错误C2512:'卡':没有合适的默认构造函数

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

CardDeck::CardDeck()
{

    *Deck = new Card[52];

} 

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

2 个答案:

答案 0 :(得分:2)

创建像Card那样的卡片阵列必须有默认构造函数

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

原因是需要一个默认构造函数来为数组提供初始值。

正如juanchopanza所说,你应该使用矢量,但你仍然会遇到同样的问题。

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

这条线看起来也很可疑

*Deck = new Card[52];

为什么要取消引用Deck?几乎可以肯定这也是错误的。我会展示更多代码。好像你有很多错误。

答案 1 :(得分:2)

目前尚不清楚是否已动态分配,但您可以使用std::vector<card>来简化问题:

// CardDeck.h
#include <vector>

class CardDeck
{
 public:
  CardDeck() : deck_(52) {} // initialie deck_ to hold 52 cards
 private:
  std::vector<Card> deck_;
};

不要忘记添加include guards,也不要包含.cpp个文件。