函数参数中的结构表

时间:2014-12-28 11:24:39

标签: c++

这是我的结构:

    struct obcyObiekt{
float x;
float y;
bool alive;
};

在main i中创建struct

obcyObiekt obcy[15];

我不知道如何添加struct table的参数,coz:

void initObcych2(struct obcyObiekt &obcy[15] )

中的

initObcych2(obcy[15]);
std::cout<<obcy[1].x;

根本不起作用:( 将会有16个obcy,所以我创建了这个

的表

2 个答案:

答案 0 :(得分:0)

如果你想拥有函数签名,请将数组的大小保持为类型安全的一部分:

void initObcych2( obcyObiekt (&obcy)[16])

此方法仅接受16类型obcyObiekt元素的数组,参数变量名称将为 obcy

答案 1 :(得分:0)

似乎函数initObcych2用于初始化数组

的元素
obcyObiekt obcy[15];

在这种情况下,该函数可以声明为

void initObcych2( obcyObiekt obcy[], size_t n );

并调用

initObcych2( obcy, 15 );

或者您可以声明类似

的功能
void initObcych2( obcyObiekt ( &obcy )[15] );

并将其称为

initObcych2( obcy );

然而,第一个函数声明更灵活,因为如果更改数组的大小并且可能为不同大小的数组调用它,则不需要更改函数声明。

至于您展示的这条记录

void initObcych2(struct obcyObiekt &obcy[15] )

struct obcyObiekt &obcy[15] 

是对struct obcyObiekt类型的对象的15个引用的数组。 C ++允许声明引用数组。它允许声明对像

这样的数组的引用
struct obcyObiekt ( &obcy )[15]