Tôi có một C++ lớp, giả sử nó được gọi là c, và tôi muốn sử dụng constructor sao chép ngầm tại một trong những phương pháp, như thế này:Sử dụng "này" như một tham số để sao chép constructor
c c::do_something() {
c copy = this; //I want implicit copy constructor here!
copy.something_else();
//........//
return copy;
}
Tuy nhiên, lợi nhuận gcc lỗi này:
error: invalid conversion from 'c* const' to 'long unsigned int'
(tôi có một nhà xây dựng từ lâu unsigned int hiện tại)
... như thể các nhà xây dựng bản sao đã không tồn tại. Tôi đang làm gì sai?
ok ... vâng, đúng vậy. thanks :) –
Điều này thực sự là sử dụng hàm tạo mặc định và sau đó toán tử gán, * không * hàm tạo bản sao. Xem phản ứng của Matt. –
Andrew: Tôi không chắc chắn - Josh bên dưới (và một số trang web) nói rằng đối diện –