gpt4 book ai didi

C++子类扩展父类

转载 作者:太空宇宙 更新时间:2023-11-04 16:02:39 25 4
gpt4 key购买 nike

有一个父类,有两个子类扩展了父类:child1,child2,我把 child 看成父类,像这样:

function(Parent *c){
c->someMethod();
}

但是 child 有一个 child2 没有的方法。我尝试添加一个 if 语句来判断类是否是 child1 是这样的:

function(Parent *c){
if(c->getType() == 'child1'){
c->someMethod();
}
}

但是出现错误:'class Parent' has no member named 'someMethod' 那么,如何处理呢?

最佳答案

由于您使用的是指向Parent 的指针,因此您只能调用Parent 类型具有的方法。

因此,第一个解决方案是将所有必要的方法放在 Parent 类中,并在子类中覆盖它们。这比下一个更可取。

另一种可能的解决方案是将 dynamic_cast Parent 指针指向必要的 child 指针,如果您确定它是正确的并调用方法child 指针。这是糟糕设计的标志,我建议坚持第一个解决方案。

关于C++子类扩展父类,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40844808/

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