У меня есть класс C++, скажем, это называется с, и я хочу использовать неявный конструктор копирования в одном из способов, как это:Использования «это» в качестве параметра конструктора копии
c c::do_something() {
c copy = this; //I want implicit copy constructor here!
copy.something_else();
//........//
return copy;
}
Тем не менее, GCC возвращает эту ошибку:
error: invalid conversion from 'c* const' to 'long unsigned int'
(у меня есть еще один конструктор из давно неподписанных INT присутствует)
... как если бы конструктор копирования не существует. Что я делаю не так?
ОК ... да, это все, по-видимому. thanks :) – 2009-02-17 00:12:17
Это действительно использует конструктор по умолчанию, а затем оператор присваивания, * не * конструктор копирования. См. Ответ Мэтта. –
Эндрю: Я не уверен - Джош ниже (и некоторые сайты) говорит обратное – 2009-02-17 00:58:27