0

我的主要程序是生成一个随机数以在二维数组中创建对象的移动并跟踪它。

我的一个函数void current_row(int row){position = row};跟踪对象的当前行。

因为变量不是全局的。我发现调用当前位置并将其更新到下一个动作的问题。这就是其他函数的样子:

void movement (){
    int row;
    row = current_row();
    /*
     * Here is the problem i'm having. This may well be 
     * a third function which has the same information 
     * as my first function. But still how do I access
     * once without modifying it and access it  
     * again to update it?
     */

    // call another function that creates new row.
    // update that info to the row
}

我是 C++ 新手。

4

2 回答 2

1

使用实例变量来跟踪它。这就是实例变量存在的原因:在函数调用之间保存它们的值。

于 2013-09-07T14:10:45.617 回答
0

如果它是 OOP 环境(正如 C++ 标签所暗示的那样),某些类应该将int row声明为类成员(包括作为方法的 getter 和 setter)。

另一种选择是在程序的main()部分的开头声明变量,并以 row 作为函数参数调用函数。

无效运动(整数行){

}

如果要更改参数,可以考虑通过引用传递参数,否则最好在函数参数声明中将其声明为 const 。如果您对部分答案听起来不熟悉,我建议您通读一下: 按引用传递与按值传递有什么区别?

于 2013-09-07T14:30:20.753 回答