-1
我想知道有没有办法一次访问三个容器。 我有喜欢类:有没有办法在一个getter中返回三个容器?
class DataContainer
{
private:
std::vector<Rental*> rentals;
std::vector<Vehicle*> vehicles;
std::vector<Client*> clients;
public:
DataContainer();
bool loadObjects();
bool createRentals();
std::string showVehicles() const;
std::string showClients() const;
std::string showDetails() const ;
std::tuple< std::vector<Vehicle*>type1, std::vector<Client*>type2, std::vector<Rental*>type3 > getContainers();
virtual ~DataContainer();
};
我想有可能从其他类对这些容器的访问,这就是为什么我想设置一些吸气,但是这才是我的问题。我不知道如果我做错了什么,但我得到的错误是:
include\DataContainer.h|74|error: template argument 1 is invalid|
||=== Build failed: 1 error(s), 2 warning(s) (0 minute(s), 1 second(s)) ===|
我的功能看起来是这样的:
std::tuple< std::vector<Vehicle*>type1, std::vector<Client*>type2, std::vector<Rental*>type3 > DataContainer::getContainers()
{
return std::make_tuple(vehicles,clients,rentals);
}
希望有人能够给我一些暗示,如果这有什么区别,我正在C++ 11上工作。
'std :: tuple'预计'T1,T2,T3'是类型。 'std :: vector type1'不是一个有效的类型。 'std :: vector '是。 –
DeiDei
'type2'等不应该在'std :: tuple type1,std :: vector type2,std :: vector type3> getContainers();'行。但是,这看起来像是相当破碎的课程设计。 –
即使错误得到解决,您最终可能会复制**很多指针,以返回三个向量。你想达到什么目的? – StoryTeller