【问题标题】:Creating a class object from it's location in the shared object从共享对象中的位置创建类对象
【发布时间】:2012-09-30 22:10:09
【问题描述】:

在 C 语言中,您可以通过 dlopen() 动态链接共享对象,并使用 dlsym() 定位特定符号(函数)的地址并将其分配给函数指针。

在C++中,如果你碰巧知道类构造函数的地址,你能创建吗? 出了一个新的对象吗?我确实意识到,使用将返回类对象的静态方法是 C++ 中动态链接的惯例。

我很好奇是否可以从构造函数地址创建对象。如果有,能举个例子吗?

提前致谢

【问题讨论】:

    标签: c++ shared-libraries dynamic-linking shared-objects


    【解决方案1】:

    你不能。问题是不能直接调用构造函数;所有构造函数调用都是由编译器隐式生成的。这也意味着你不能通过函数指针调用它。

    我也只是尝试获取构造函数的地址,但这也不起作用(虽然这只是一个快速破解,不能确定它是否真的有效)——因为构造函数没有返回类型,下一个问题是如何为该函数指针编写类型。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2017-04-08
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-07-02
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多