【发布时间】:2021-05-10 19:48:15
【问题描述】:
我有一个带有纯虚方法void foo(int a) = 0的抽象类A
然后我有几个继承自A 的类,它们都定义了方法foo。但我需要其中一个 B 来实现它,所以 foo 需要一个额外的参数 int b,所以有点过载。
那我想这样做:
A *bInstance = new B();
bInstance -> foo(1, 2);
但我收到一条错误消息,告诉我foo 采用了太多参数。
在写这篇文章时,我意识到这样做是一件很奇怪的事情,所以也许你不能这样做,但你不能这样做是件好事。但如果可能的话,请告诉我应该怎么做。
【问题讨论】:
-
你为什么要这个?我的意思是,如果派生类有另一个接口,为什么要使用公共基础?这似乎是设计的味道。
标签: c++ inheritance operator-overloading abstract-class