结构作为C++中的参数

struct as a parameter in C++

本文关键字:参数 C++ 结构      更新时间:2023-10-16

我是初学者,所以请保持简单。

无论如何,我有一个这样定义的结构:

struct card      
  {
  char rank[10];
  char suit[10];
  char color;
  bool dealt;
  char location[10];
  };

我有一个传递这种结构的函数:

  void importCard(card deck[52]);

问题是,如果我在main()中定义结构,那么编译器在函数声明时不知道什么是"卡"(在main之上)。在不将结构定义为全局结构的情况下,如何绕过此问题?

可以将类型定义为"globals",因此只需在文件顶部定义struct类型即可。


顺便说一句,请注意延迟

void importCard(card deck[52]);

几乎从来没有这样写过,因为编译器只是丢弃了其中的52(所以在源代码中使用它有点误导)。

相反,它被写为例如

void importCard(card deck[]);

更详细地说,我应该提到,通过使用std::vector而不是原始数组,编码变得容易得多,然后函数将是例如

vector<card> importCards();