void MainWindow::moveAgvs() { Astar astar; std::vector<std::vector<Node*>> paths(agvs.size());,怎麽在別的函數里引用moveagvs的局部變量path
时间: 2023-12-18 21:05:49 浏览: 34
在C++中,局部变量只能在其所在的函数内部使用,不能在其他函数中直接引用。如果想要在其他函数中使用局部变量,有以下两种方法:
1. 将局部变量声明为类的成员变量,这样其他函数就可以通过类的对象访问该变量。
例如,在MainWindow类中声明一个std::vector<std::vector<Node*>> paths成员变量,并在moveAgvs函数中将其赋值,然后就可以在其他函数中通过MainWindow对象访问该变量:
```
class MainWindow {
public:
void moveAgvs();
std::vector<std::vector<Node*>> paths;
};
void MainWindow::moveAgvs() {
Astar astar;
paths.resize(agvs.size());
// ...
}
void otherFunction(MainWindow& mainWindow) {
// 使用MainWindow对象的成员变量paths
// ...
}
```
2. 将局部变量作为参数传递给其他函数。
例如,在其他函数中声明一个std::vector<std::vector<Node*>>类型的参数,然后在调用该函数时将局部变量paths作为参数传递:
```
void otherFunction(std::vector<std::vector<Node*>>& paths) {
// 使用传递进来的paths变量
// ...
}
void MainWindow::moveAgvs() {
Astar astar;
std::vector<std::vector<Node*>> paths(agvs.size());
// ...
otherFunction(paths);
}
```