首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >可以定义一个指向构造函数的函数指针吗?

可以定义一个指向构造函数的函数指针吗?
EN

Stack Overflow用户
提问于 2010-12-14 20:14:02
回答 2查看 1.3K关注 0票数 3

为了在C++中实现插件模式,我使用了带有显式链接的共享库(用dlopen加载共享库)。

有没有可能定义一个指向共享库中定义的类的构造函数的函数指针,或者我必须在共享库中定义工厂方法来实例化(和初始化)共享库中的类的对象?当然,在我的主应用程序中,我会定义一个指向工厂方法的函数指针,该方法将返回我需要的类的一个实例。

干杯

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2010-12-14 20:18:57

这个问题的答案是否定的,您不能定义指向构造函数的成员或函数指针。

对于dlopen,您需要提供一个具有c链接的函数并动态加载它,您可以使用该函数来创建对象,您还需要另一个函数来删除对象。

关于它的更多信息here

票数 6
EN

Stack Overflow用户

发布于 2010-12-14 20:57:44

在使用dlsym()获取指针时,您需要注意名称损坏问题。依赖某些特定的分解方法并不是一个好主意,它们都太多样化了。因此,唯一合理的做法是将您的插件接口公开为外部"C“{ ... },在构造函数上使用工厂函数包装器。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/4439022

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档