我在c ++中有一个需要一个结构才能工作的函数,但是我 很难过去。结构如下所示:
struct RecAbbo{
char name[20];
char surname[20];
int games;
int won;
int same;
int lost;
int place;
int money;
}Abbo[100];
首先我尝试了这个:
void function(structure_name);
这没用,所以我搜索了互联网。我发现你应该这样做:
void function(structure_name struct);
但它不起作用。
我该怎么做?
答案 0 :(得分:3)
应该是其他方式
void function(struct RecAbbo structure_name)
此外,确保在原型使用函数 function 的原型之前定义结构。
但是在C ++中,你根本不需要使用struct。所以这可以简单地成为:
void function(RecAbbo structure_name)
答案 1 :(得分:1)
首先,我认为您应该对name
和surname
使用std::string
,并对Abbo
数组使用std::array
:
struct RecAbbo {
std::string name;
std::string surname;
int games;
int won;
int same;
int lost;
int place;
int money;
};
std::array<RecAbbo, 100> Abbo;
您可以通过引用或func
引用声明接受RecAbbo
的函数const
:
void func(RecAbbo&);
void func(RecAbbo const&);
如果您不打算修改struct
,建议使用后者。
如果要传递数组,可以使用:
void func(std::array<RecAbbo, 100>&);
void func(std::array<RecAbbo, 100> const&);
或使用 iterators :
来概括它template<class It>
void func(It begin, It end);
或使用模板:
template<std::size_t Size>
void func(std::array<RecAbbo, Size>&);
template<std::size_t Size>
void func(std::array<RecAbbo, Size> const&);
答案 2 :(得分:0)
使用
void function(RecAbbo any_name_for_object);
这样可行。