想象一下,我有一个班级A. B& C都继承自A. B'继承自B。
B"有一个成员变量,它是A指针的向量。
我创建了一个新的B"调用bP
并在其中存储一个名为c
的新C。
现在我想调用c.f()
,这是一个仅存在于C类的函数。
我打电话给bP[0]->f()
。
我得到的错误是" f():不是' A'"的成员。
我可以从父对象的向量中调用子函数吗?
答案 0 :(得分:0)
I believe your code structure is something like this :
class A
{
};
class B: public A
{
};
class C: public A
{
};
class B': public B
{
public:
vector<A*> vec;
B(class C* c)
{
vec.push_back(c);
}
};
int main()
{
C *c = new C();
B'* b = B'(c);
C* c = static_cast<C*>(((b->vec).front())->f()); //Downcasting
return;
}