【问题标题】:error C2248: 'Gdiplus::Bitmap::Bitmap' : cannot access private member declared in class 'Gdiplus::Bitmap'错误 C2248:“Gdiplus::Bitmap::Bitmap”:无法访问在类“Gdiplus::Bitmap”中声明的私有成员
【发布时间】:2010-12-28 14:16:25
【问题描述】:

我收到此错误,但我不知道为什么或不明白原因:

    vector<double> fourier_descriptor(Gdiplus::Bitmap myBitmap)
{


    vector<double> res;
    Contour c;
    vector<Pixel> frame;// = c.GetContour(p);

frame = c.GetContour(myBitmap);


    return res;

}

错误在这一行 frame = c.GetContour(myBitmap);

【问题讨论】:

    标签: c++ gdi+


    【解决方案1】:

    我找不到 GetContour 方法的引用,但看起来您正在尝试按值传递 Bitmap,它(如果我没记错 C++)将调用复制构造函数——而 Bitmap 不会t 有一个公共的拷贝构造函数。

    如果您拥有 Contour,请重写该函数以采用 Bitmap*Bitmap&amp; 代替(即传递指针或引用),从而避免复制构造函数。

    【讨论】:

      【解决方案2】:

      尝试通过引用传递它:

      vector<double> fourier_descriptor(Gdiplus::Bitmap& myBitmap)
      

      Ny 按值传递它,你复制它,而 Bitmap 不允许这样做。

      【讨论】:

        【解决方案3】:

        Gdiplus::Bitmap 不可复制。当您尝试按值传递它时,您正在尝试复制它。

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 2019-01-03
          • 2011-03-21
          • 2011-06-12
          • 1970-01-01
          • 2014-01-10
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多