Mam klasa C++, powiedzmy, że to się nazywa c, i chcę używać niejawny kopiowania konstruktor w jednej z metod, takich jak to:Używanie „to” jako parametr skopiować konstruktora
c c::do_something() {
c copy = this; //I want implicit copy constructor here!
copy.something_else();
//........//
return copy;
}
jednak gcc powraca ten błąd:
error: invalid conversion from 'c* const' to 'long unsigned int'
(mam innego konstruktora od dawna obecny unsigned int)
... jakby konstruktor kopia nie istnieje. Co ja robię źle?
ok ... tak, najwyraźniej tak. dzięki :) –
To naprawdę używa domyślnego konstruktora, a następnie operatora przypisania, * nie * konstruktora kopiowania. Zobacz odpowiedź Matta. –
Andrew: Nie jestem pewien - Josh poniżej (i niektóre strony) mówi odwrotnie: –