【发布时间】:2011-08-01 19:41:37
【问题描述】:
接口类有没有办法强制复制构造函数的定义,也许还有其他构造函数的定义?在我的例子中,我有一个IResource 纯抽象类,我希望所有实现这个接口的类都定义一个copy-constr、一个从文件加载的构造函数和一个从内存加载的构造函数。
【问题讨论】:
-
为什么这很重要?无论如何,您不能强制实际上从文件加载资源吗?据我所知,如果您在模板中构造事物,则确实需要具有相同的构造函数。哪个应该已经解决了您的问题。 - 至于复制构造函数,你可能更想要一个克隆方法,虽然我怀疑你可以强制一个不直接从接口派生的类来实际实现它。
-
...?这很重要,因为我想确保我的所有资源都为程序员提供相同的接口并以一致的方式运行。
-
//All implementations of IResource must have a publicly accessible copy constructor; violators of this rule will be terminated应该可以解决问题 -
-1:任何试图这样做的人都是在把车放在马的前面。您没有将继承用于其预期目的,即运行时多态行为。如果您不需要运行时多态性,那么您应该使用组合而不是继承。
标签: c++ oop inheritance interface