2014-10-02 35 views
0

我试图将Coin对象数组传递给从用户界面函数内调用的Change函数。 我在不同的地方尝试了许多*和&的组合,并没有找到任何成功。C++如何通过引用传递一个对象数组的元素?

用户界面函数头

void UserInterface (Coin Roll[]) 

的变化函数头(试过硬币*硬币,并得到了表达必须有一流的类型错误)

bool Change (Coin & coin, long int & mulah) 

如何,我想呼叫改变(卷是一组硬币)在用户界面内

Change(Roll[j], mulah) 

整个程序是h ERE http://pastebin.com/6bsuyEvF

+3

请提供一个最简单但完整的示例,**这里**。 – 2014-10-02 02:16:30

+0

你想传递给'Change',一个数组元素'Coin'或者'Coin'? – Beta 2014-10-02 02:21:23

+0

@Beta,来自他的网址,它是一排硬币 – radar 2014-10-02 02:22:53

回答

-1

有与代码没有问题! 忘了上述 INT主()

bool Change (Coin & coin, long int & mulah) ; 

int main() 

{

所需操作者的地址添加'&'给函数原型

+0

将此答案标记为尽快接受 – GingerPlusPlus 2014-10-04 10:40:24

+0

此代码中没有“操作员地址”。 '&'是声明参考的一部分。 – 2014-10-04 11:09:28

0

可以传递数组作为参考像下面

void UserInterface (Coin (&Roll)[]) 
0

您有几种可能性

  • void UserInterface(Coin roll[], int size);
  • void UserInterface(Coin* roll, int size);
  • void UserInterface(Coin (&roll)[42]); // size should be 42
  • template <std::size_t N> void UserInterface(Coin (&roll)[N]);

更改接受的类型:

  • void UserInterface(std::vector<Coin>& roll);
  • void UserInterface(std::array<Coin, 42>& roll); // size should be 42
  • template <std::size_t N> void UserInterface(std::array<Coin, N>& roll);