我需要一个拷贝构造函数我Immagine
类是这样的:C++:拷贝构造函数,使用功能与非const参数
Immagine::Immagine(Immagine& i)
{
...
}
obviusly,当我尝试调用它,我有这样的事: error: invalid initialization of non-const reference of type ‘Immagine&’ from an rvalue of type ‘Immagine’
,因为我想声明为:
Immagine::Immagine(const Immagine& i)
{
...
}
但我不能这样做,因为,到iniatialize的想象,成员对象,我用一个函数
Immagine::Immagine(const Immagine& i)
{
dlib::array2d<dlib::rgb_pixel>& r=i.v; //v is a member of type dlib::array2d<dlib::rgb_pixel>
dlib::assign_image(this->dlib_immagine,r);
}
功能dlib::assign_image(dst,src)
是包功能,并复制到src
但dst
在src
参数声明没有const
,所以如果我宣布i
为const
我得到一个错误......我该如何解决这个问题?
我没有看到你用'i' ... – vu1p3n0x
你在你的例子中插入了一个'... something ...'blackbox,这使得它不可能推断出任何东西。我怀疑你在'assign_image'出现错误。 'r'已经是一个非const引用。 – luk32
你确定吗?他们的源代码显示'dlib :: assign_image()'接受一个const'src_img'参数。 http://dlib.net/dlib/image_transforms/assign_image_abstract.h.html#assign_image或者你是否使用一些旧版本 – vu1p3n0x