我在头文件中有一个函数原型:
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文档以及其他“向量向量”问题,似乎没有人有我的问题。
提前感谢您的帮助。
答案 0 :(得分:3)
vector
中存储的对象必须是可分配的,GenericBase* const
不是这种情况。因此编译错误。
也许你想要GenericBase const*
来使尖头对象保持不变(而不是指针本身)?无论如何,你必须放弃顶级const
限定符。
答案 1 :(得分:0)
可能你可以尝试删除const
std::vector<std::vector<GenericBase*> > GenericObserver::allObserved()
{
return std::vector<std::vector<GenericBase*> >();
}