đây là một câu hỏi thực sự đơn giản nhưng tôi không thực hiện C++ đúng trong nhiều năm và vì vậy tôi là một chút bối rối bởi điều này. Ngoài ra, nó không phải là điều dễ nhất (đối với tôi ít nhất) để tìm kiếm trên internet, không phải để cố gắng.C++ Đối tượng không có mới
Tại sao điều này không sử dụng từ khóa new
và cách hoạt động?
Về cơ bản, những gì đang xảy ra ở đây?
CPlayer newPlayer = CPlayer(position, attacker);
Tuyệt vời, cảm ơn. –
Trình biên dịch thực sự có thể sẽ tối ưu hóa nó. Trong trường hợp đó, hàm tạo bản sao sẽ không được gọi. http://stackoverflow.com/questions/1758142/why-copy-constructor-is-not-called-in-this-case – BostonLogan
Phép gán trong khai báo không kém hiệu quả hơn việc sử dụng cú pháp hàm tạo. Nếu họ đã có những tuyên bố riêng biệt, hơn là nhận xét về thời gian sẽ là chính xác. Bản chất là điều này tuyên bố một CPlayer (thường là trên stack) hơn là phân bổ không gian cho nó từ các cửa hàng miễn phí (đống). –