【发布时间】:2015-06-22 20:15:28
【问题描述】:
我是 Qt 和 c++ 的新手。我很难将点列表传递给方法。当我全局声明列表并使用它时,它工作正常,但是当我在本地声明它并将它传递给一个方法时它根本不起作用。(根本不起作用,我的意思是车辆没有要遵循的点列表o它与它在全球范围内声明的情况相反,它什么都不做)
Simulation::Simulation()
{
QList<QPointF> pointsToFollow3;
pointsToFollow3 <<QPointF(0,25)<<QPointF(300,25)<<QPointF(1000,25)<<QPointF(1700,25);
createVehicles(5, pointsToFollow3);
}
void Simulation::createVehicles(int numberOfVehicles, QList<QPointF> pointsToFollow)
{
spawnVehicle(pointsToFollow);
}
void Simulation::spawnVehicle(QList<QPointF> pointsToFollow)
{
//spawn my vehicle
Vehicle * vehicle = new Vehicle(pointsToFollow);
vehicle->setPos(pointsToFollow[0]);
scene->addItem(vehicle);
}
当在头文件中将要遵循的点声明为公共全局变量时,此方法有效,我认为我传递点列表的方式不正确,非常感谢您的帮助。
【问题讨论】:
-
尝试在
Simulation类的构造函数中声明和定义pointsToFollow3。 -
您可以在非工作情况下发布代码吗?很难修复工作代码。
-
请提供一个完整但最小的例子供读者尝试。
-
该代码不起作用
-
我的问题是如何将列表传递给方法?
标签: c++ list qt parameter-passing