请看下面的代码
VehicleManager.h
#pragma once
#include "Vehicle.h"
class VehicleManager
{
public:
VehicleManager(int size);
~VehicleManager(void);
bool add(Vehicle *v);
void display();
int getCount();
Vehicle **getList();
private:
int count;
int maxVehicles;
Vehicle** vehicles;
};
VehicleManager.cpp
//Other Code
Vehicle VehicleManager::**getList()
{
return vehicles;
}
//Other Code
在这里,我无法返回数组。如何从函数返回动态指针数组?请帮忙!
最佳答案
将**
应用于返回类型:
Vehicle** VehicleManager::getList()
{
return vehicles;
}
但是,您真正应该做的是,如果
std::vector<Vehicle*>
负责动态分配的VehicleManager
的生命周期,则使用Vehicles
;如果调用者要拥有所有权,则使用std::vector<std::unique_ptr<Vehicle>
。在两种情况下,您都可以按值返回它。