1

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

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 文档以及其他“向量向量”问题,但似乎没有人遇到我的问题。

在此先感谢您的帮助。

4

2 回答 2

4

存储在 a 中的对象vector必须是可分配的,而GenericBase* const. 因此编译错误。

也许您希望GenericBase const*使指向的对象保持不变(而不是指针本身)?无论如何,您必须放弃顶级const预选赛。

于 2013-07-07T16:29:42.227 回答
0

也许你可以尝试删除 const

std::vector<std::vector<GenericBase*> > GenericObserver::allObserved()
{
    return std::vector<std::vector<GenericBase*> >();
}
于 2013-07-07T16:31:56.740 回答