返回矢量矢量

时间:2013-07-07 16:24:00

标签: c++ vector

我在头文件中有一个函数原型:

std::vector<std::vector<GenericBase* const> > allObserved();

和一个样板实现(只是为了*它希望*编译,但是没用)作为

//Accessors
std::vector<std::vector<GenericBase* const> > GenericObserver::allObserved(){

    return std::vector<std::vector<GenericBase* const> >();
}

我从编译器得到100个错误。我已经从这两个文件中删除了这些函数(通过评论),然后一切编译都很好。我已经查看了cplusplus.com上的vector.h文档以及其他“向量向量”问题,似乎没有人有我的问题。

提前感谢您的帮助。

2 个答案:

答案 0 :(得分:3)

vector中存储的对象必须是可分配的,GenericBase* const不是这种情况。因此编译错误。

也许你想要GenericBase const*来使尖头对象保持不变(而不是指针本身)?无论如何,你必须放弃顶级const限定符。

答案 1 :(得分:0)

可能你可以尝试删除const

std::vector<std::vector<GenericBase*> > GenericObserver::allObserved()
{
    return std::vector<std::vector<GenericBase*> >();
}