功能和结构与类别
Functions and Structures Versus Classes
我正在努力在C 中编写小型纸牌游戏。我正在使用结构来表示单个卡:
#include <string>
struct card
{
int number;
std::string suit;
};
卡将在甲板上保存,为此,我将定义一个功能 - 类似于draw_card
-从甲板的底部卸下x
卡,默认为一个。我认为我可以通过两种方式实施:
作为结构:
#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
。对于此类问题,为什么我希望使用班级而不是结构?严格来说,这是组织所有仅适用于给定类别的功能的问题,还是还有其他优势?
类和结构之间的差异是属性的默认保护(数据和方法)。
例如:
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);
};
相关文章:
- C++中用于结构的纯数组的类似于TableView/DataFrame的通用功能
- 对于没有功能的结构,"new (ptr) mystruct;"做什么?
- 在C 中,是否有树木数据结构具有相似的功能
- 如何使用结构内的功能指针调用私有函数
- C++要在其中添加接口功能的类层次结构
- 获得const结构和CIN的功能
- 访问嵌套结构的数据成员并将结构传递到功能C
- 在C 功能执行后,使用GCHANDLE CRALSES将大型结构从C#Unity脚本传递到C DLL
- 调用功能并将其设置为等于结构
- 在模板功能中打印任何结构
- MPI_Op_create:候选功能不可行.自定义结构指针不能解释为空指针
- 创建结构并传递IT功能
- 从公共功能原型中获取私有结构
- 在程序中传递功能具有结构C
- 局部结构通过使用共同的模板功能来影响不同的翻译单元
- 导入C 功能将结构的指针返回到VB.NET中
- 有关继承层次结构的问题,没有任何虚拟功能
- 如何从另一个功能中修改的结构的炭指针成员中获取值
- 对具有继承功能的结构使用初始值设定项列表
- 结构功能有问题