C++的接口需要不同的参数,应该如何设计?

zju_kk 2017-02-27 05:49:33
抽象的说如下:
对于一个接口类A,存在若干派生类B,C,D等,接口类A里面有一个纯虚函数foo(T t)。由于每一个子类都有对应的参数类型T,分别为B_ini,C_ini,D_ini等,这样应该如何设计这个接口使得函数foo能够通过多态兼容所有的参数类型T?

...全文
1647 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
Acuity. 2017-11-21
  • 打赏
  • 举报
回复
A模板,虚函数foo,B、C、D继承A,重写foo函数。
dong364 2017-04-18
  • 打赏
  • 举报
回复
A用模板,B、C、D继承之
面向对象思考 2017-04-07
  • 打赏
  • 举报
回复
现在的信息量不足以解决问题,梦不能具体讲一下应用场景?
kerwin liu 2017-04-06
  • 打赏
  • 举报
回复
二楼的方法可行的,然后以不同的类型继承模板类
zilaishuichina 2017-03-21
  • 打赏
  • 举报
回复
让 B_ini,C_ini,D_ini 继承同一个基类 A_ini A提供接口 foo(A_ini& t) BCD分别实现 foo(A_ini& t)
幻夢之葉 2017-03-06
  • 打赏
  • 举报
回复
foo(void *v); ReturnType B::foo(void *v) { B_ini *p = (B_ini)v; }
清泉流 2017-02-28
  • 打赏
  • 举报
回复
将B_ini等也实现同一个接口比如说T_ini,在A接口函数使用foo(T_ini t),这样就是支持多个类型,又多态。可以在foo函数里面强转T_ini.
Pingo520 2017-02-28
  • 打赏
  • 举报
回复
把A定义成模版?

Template <type T>
class A{
      A();
      ~A();
      void foo(T t)=0;
};
大概是这样吧
zju_kk 2017-02-27
  • 打赏
  • 举报
回复
感觉如果在接口里面指定了类型T就不合理了,这种结构应该如何设计?

5,530

社区成员

发帖
与我相关
我的任务
社区描述
C/C++ 模式及实现
社区管理员
  • 模式及实现社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧