gpt4 book ai didi

c++ - 不同类型的继承方法

转载 作者:行者123 更新时间:2023-11-30 04:37:59 26 4
gpt4 key购买 nike

我有这样的东西

class A {  
virtual void doBla(A *a) = 0;
};

class B : public A {
virtual void doBla(B *b) { // do stuff ;};
};

我想做类似的事情

A* a = new B();
B* b = new B();
a->doBla(b);

或者:A 的所有 child 都应该有一个方法 doBla,它接受子类型的参数。希望你能解决我的问题,并希望有人能帮助我或说服我这是一种糟糕的风格:)

编辑:将虚拟添加到方法中

最佳答案

你不能跨基类/子类重载函数,如果你想从外部调用它,类 AdoBla 成员函数必须是公共(public)的:

class A {
public:
virtual void doBla(A *a) = 0;
};

class B : public A {
virtual void doBla(A *a) { /*do stuff*/ }
};

编辑:注意 doBla 函数的声明在 A 类和 B 类中是相似的。

关于c++ - 不同类型的继承方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3466787/

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