1

次のコードを見てください

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

ここでは、配列を返すことができません。関数からポインタの動的配列を返すにはどうすればよいですか? 助けてください!

4

1 に答える 1

4

**をリターンタイプに適用します。

Vehicle** VehicleManager::getList()
{
    return vehicles;
}

しかし、実際にすべきことは、動的に割り当てられたライフタイムを担当している場合、または呼び出し元が所有権を取得するstd::vector<Vehicle*>場合は、を使用することです。どちらの場合も、値で返すことができます。VehicleManagerVehiclesstd::vector<std::unique_ptr<Vehicle>

于 2012-12-21T07:01:04.890 に答える