다음 코드는 방법에서 포인터의 동적 배열을 반환하는 방법
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;
}
을하지만 당신이 정말로해야하는 것은 VehicleManager
이 Vehicles
, 또는 std::vector<std::unique_ptr<Vehicle>
발신자는 경우를 할당 dynamicallly의 수명 담당하는 경우 std::vector<Vehicle*>
을 사용할 수 있습니다 :
'::'는 범위 분석 연산자입니다. '**'는 범위를 분석 할 필요가 없습니다. 비록 포인터의 동적 배열이 필요하다고 확신한다면 스마트 포인터의 벡터를 살펴 보는 것이 좋습니다. – chris
나는 또한 Vector 제안에 동의하며, 이것은 어리석은 방법이라는 것을 알고있다. (하지만,해야 할 일은 다음과 같은 단계를 따라 서면으로 주어진다 :( –
왜 차량을 가져와야 하는가? 관리자가 그들과 함께 할 일을하고 싶습니다. 나는'display'가하는 일이라고 생각합니다 .' updateTime' 등과 같이 다른 일을 할 수있는 다른 함수를 추가하십시오. –