gpt4 book ai didi

C++如何从父级调用子方法

转载 作者:行者123 更新时间:2023-12-03 07:37:19 27 4
gpt4 key购买 nike

我正在做一个小项目,我发现自己处于这样的情况:

class A{}

class B : class A {
public:
void f();
int getType() const;
private:
int type;
}

class C : class A{
public:
int getType() const;
private:
int type;
}
我想知道是否有办法调用 f()功能 (in class B ) 来自 type A 的对象?
我试过这个,但它说功能 f()class A 中找不到:
int main(){
vector<A*> v;
// v initialized with values of A ...
if (v->getType() == 1){ // 1 is the type of B
v->f();
}
}

最佳答案

如您所见,此代码无法编译,因为 A没有 f方法。为了使它工作,你必须明确地向下转换指针:

B* tmp = dynamic_cast<B*>(v);
tmp->f();

关于C++如何从父级调用子方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/65455821/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com