【发布时间】:2011-04-06 14:40:55
【问题描述】:
首先很抱歉我的英语不好,我不是英语母语=/
我有一个指向我的基类 A 的指针向量,它由 B 类和 C 类填充。 B 和 C 是来自 A 的多态类,它们只有一个方法 setTest()。 现在我想通过向量从 B/C 调用一个方法:
vector (A*) vec;
vec.push_back(new classB());
vec.push_back(new classC());
for(int i=0;i<3;++i)
vec[i]->setTest(true);
但是编译器说我的基类 A 中没有方法 setTest()。 有什么想法可以解决这个问题吗?
【问题讨论】:
-
是虚拟的 void setTest(bool);在 A 类中声明?
-
我们能看到更多的代码吗? (最好是失败的最小数量......)
-
不,必须这样吗?这是严格给出方法的考试的一部分
-
更多 D 类代码,失败发生的地方:#include "B.h" #include "C.h" #include
using namespace std; D::D(void) { 向量 (A*) vec; vec.push_back(新类 B()); vec.push_back(new classC()); for(int i=0;isetTest(true); } 你还想要吗? -
应该是
vector<A*>吧?
标签: pointers methods vector polymorphism