在C ++中动态调用静态“构造函数”

时间:2013-11-02 18:11:28

标签: c++ static-methods

我正在尝试编写一个封闭源C ++库的python包装器,它具有如下界面:

class Image
{
  public:
    :
    static Image ReadImage(const char *Filename);
    :
}

问题是,对于python绑定,我需要一个指向Image对象的指针,而不是对象Image本身。如果方法是构造函数,我会这样做:

Image img = new Image();

但我坚持认为静态方法是否有相应的语法。我尝试了以下哪些不起作用(至少不是在g ++ 4.8中):

image img = new Image::ReadImage("foo.bar");

当然我可以通过生成一个包装类来解决这个问题,但我想知道这是否真的有必要?

1 个答案:

答案 0 :(得分:2)

您可能需要依赖copy-ctor或move-ctor:

Image* img = new Image(Image::ReadImage("foo.bar"));