gpt4 book ai didi

C++:接口(interface)强制定义copy-constr

转载 作者:塔克拉玛干 更新时间:2023-11-02 23:32:40 25 4
gpt4 key购买 nike

有没有什么方法可以让接口(interface)类强制执行复制构造函数的定义,也许还有其他构造函数的定义?在我的例子中,我有一个 IResource 纯抽象类,我希望所有实现此接口(interface)的类都定义一个复制构造函数、一个用于从文件加载的构造函数和一个用于从内存加载的构造函数.

最佳答案

为了构造一个对象,您需要知道要使用的具体类(否则它怎么知道要分配多少内存,或者要使用哪个虚拟表,等等?)。因此,在处理构造函数时接口(interface)不起作用,您不能使用接口(interface)(纯虚拟)来强制存在这样的构造函数。当你想到它时,这是很自然的,只有当你有一个多态对象时,虚拟才会起作用,即在实例化之后。任何引用您的 IResource 接口(interface)的人都只会处理实例化的对象,而绝不会触及构造函数。

不过,如果需要,您可以使用模板对内容实现此类约束。通过简单地从模板函数调用复制构造函数,如果编译器遇到使用没有复制构造函数的类型的模板实例化,编译器将会报错。

关于C++:接口(interface)强制定义copy-constr,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5600645/

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