我需要一個拷貝構造函數我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