在 C++ 中更新函数之间的变量
updating variable between functions in c++
我的主要程序是生成一个随机数来创建二维数组中对象的运动并跟踪它。
我的一个函数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++ 的新手。
使用实例变量来跟踪它。这就是实例变量存在的原因:在函数调用之间保存它们的值。
如果它是一个 OOP 环境(如 C++ 标签所暗示的那样),某个类应该将 int row 声明为类成员(包括 getter 和 setter 作为方法)。
另一种选择是在程序的 main() 部分的头部声明变量,并使用 row 作为函数参数调用函数。
空隙移动(整数行){
}
如果您打算更改参数,则可以考虑通过引用传递参数,否则最好在函数参数声明中声明它 const。如果部分答案对您来说听起来不熟悉,我建议您通读:按引用传递与按值传递有什么区别?
相关文章:
- 类与私有变量的其他类之间的线程安全性
- 编辑字符串以包含括号 c++ 之间的变量
- 子目录之间的 CMAKE 共享变量
- 在.cpp文件之间传递全局字符串变量?
- 我的 c++ 程序似乎没有发现字符串和我拥有但输入使用 getline 的变量之间的比较
- 如何在不同的CMakeList.txt之间共享变量?
- C++ 编译时在两个变量之间交替
- 创建变量之间的运算符排列
- 通过require在不同的Lua状态之间共享全局变量
- 成员变量的不同"kinds"之间的区别
- 互锁变量访问(在布尔值上)和 std::atomic_flag 之间的区别
- 在没有外部文件的情况下在应用会话之间保存变量
- 计算两个uint8_t变量之间差值的最快方法是什么?
- 有没有办法在两个共享对象之间使用相同的全局变量?
- lambda 表达式中引用捕获的 constexpr 变量和非显式捕获的 constexpr 变量之间的区别
- 在成员函数之间传递const变量为数组的索引
- 直接为浮点变量分配十六进制整数与通过指针转换分配之间的区别
- 如果两个线程调用同一个函数,但函数中的所有变量都是局部变量,我还需要担心线程之间共享数据吗?
- 使用文件锁定的进程之间的条件变量
- C++ 静态成员变量 - 文件之间的访问