请看下面的代码

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>。在两种情况下,您都可以按值返回它。

10-06 00:29