在c++中,我想要一个抽象类型为Query的数组,其中包含calcScore()函数,该函数是一个纯虚函数。
并且我有两个非抽象类ConQuery和DisQuery,它们实现了calcScore函数。
并且我有两个非抽象类ConQuery和DisQuery,它们实现了calcScore函数。
为了实现这一点,我定义了以下数组:
vector<Query*> m;
and I iterate and call the function like this:
for (vector<Query*>::const_iterator it1 = index.begin() ;it1 != index.end() ; it1++)
{
cout << (*it1)->CalcScore() << endl;
}
我遇到了一个错误,对于Query的纯虚函数调用会报错。如何通过多态类型来调用ConQuery或DisQuery的函数呢?谢谢。
vector
? - K-ballovector<Query*> m;
但是vector<Query>::const_iterator
... 那么容器的真实类型是什么?无论如何,错误表明您正在从Query
的构造函数/析构函数中调用Query
的虚函数... - David Rodríguez - dribeas