功能和结构与类

时间:2014-01-30 21:57:27

标签: c++

我正在用C ++编写一个小卡片游戏作为练习。我正在使用一种结构来代表个人卡片:

#include <string>
struct card
{
    int number;
    std::string suit;
};

卡片将保存在卡片组中,我将为其定义一个函数 - 比如draw_card - 从卡片底部删除x卡片,默认值为1 。我想我可以用两种方式实现这个:

作为结构:

#include <vector>
struct deck
{
    std::vector<card> cards_left
};

void draw_card(std::vector<card>& deck, int cards_to_draw = 1) {
// This function takes a deck by reference and removes cards_to_draw from the bottom.
};

作为一个班级:

class deck
{
    std::vector<card> cards_left;
public:
    void draw_card(int cards_to_draw = 1);
};

void deck::draw_card(int cards_to_draw = 1)
{
// This function takes cards_left and removes cards_to_draw from the bottom.
}

我可以编写一个类似的函数(在两种情况下)来填充类和结构中的cards_left。对于像这样的问题,为什么我更喜欢在结构上使用类?是否严格要求组织所有仅适用于特定类别的功能,还是有其他优势?

1 个答案:

答案 0 :(得分:2)

类和结构之间的区别是属性(数据和方法)的默认保护。

例如:

class deck
{
    std::vector<card> cards_left;
public:
    void draw_card(int cards_to_draw = 1);
};

的作用与:

相同
struct deck
{
private:
    std::vector<card> cards_left;
public:
    void draw_card(int cards_to_draw = 1);
};