Ich brauche einen Kopierkonstruktor für meine Klasse Immagine
wie diese zu machen:C++: Copykonstruktor, die eine Funktion mit nicht-const verwendet Parameter
Immagine::Immagine(Immagine& i)
{
...
}
obviusly, wenn ich versuche, es zu nennen, ich habe so etwas wie : error: invalid initialization of non-const reference of type ‘Immagine&’ from an rvalue of type ‘Immagine’
weil ich es als erklären würde:
Immagine::Immagine(const Immagine& i)
{
...
}
aber ich kann es nicht tun, weil, ein Immagine Mitglied Objekt iniatialize, verwende ich eine Funktion
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);
}
Funktion dlib::assign_image(dst,src)
ist eine Paket-Funktion und Kopien src
in dst
aber ohne const
bei src
Parametern deklariert, also wenn ich i
als const
erklären bekomme ich einen Fehler ... Wie kann ich dieses Problem lösen?
Ich sehe Sie nicht mit 'i' ... – vu1p3n0x
Sie fügen eine' ... etwas ... 'Blackbox in Ihrem Beispiel, die es unmöglich macht, etwas abzuleiten. Ich bezweifle, dass Sie einen Fehler bei "assign_image" bekommen. 'r' ist bereits eine nicht-konstante Referenz. – luk32
bist du sicher? ihre Quelle zeigt 'dlib :: assign_image()' nimmt einen konstanten 'src_img' Parameter. http://dlib.net/dlib/image_transforms/assign_image_abstract.h.html#assign_image oder verwenden Sie eine ältere Version – vu1p3n0x