Biểu tượng này có vẻ là trình biên dịch tạo ra destructor. Sự khác biệt giữa cái này, 'trình biên dịch tạo ra destructor' và 'scalar delete destructor' là gì? Có bất kỳ loại khác của trình biên dịch tạo ra ctor/dtor?Ý nghĩa của biểu tượng "vector xóa destructor" trong VC++ là gì?
Trả lời
Các hàm có tên 'scalar deleting destructor'
và 'vector deleting destructor'
là các hàm trợ giúp được tạo bởi trình biên dịch VC khi tạo mã cho câu lệnh delete
. Đừng nhầm lẫn chúng với destructor lớp mà cũng có thể được tạo ra bởi trình biên dịch. Các cựu có thể được thể hiện bằng giả như
void scalar_deleting_destructor(A* pa)
{
pa->~A();
A::operator delete(pa);
}
và sau này như
void vector_deleting_destructor(A* pa, size_t count)
{
for (size_t i = 0; i < count; ++i)
pa[i].~A();
A::operator delete[](pa);
}
Cảm ơn, Andrey. Tôi là một chút nhầm lẫn về các nhà điều hành xóa bên trong ở đây. Vô hướng xóa destructor này là trình biên dịch được tạo ra và nó được gọi bằng 'delete a', đúng không? Có vẻ như các cuộc gọi bên trong để xóa nguyên nhân đệ quy? – Thomson
@Thomson Hãy để tôi cố gắng làm cho nó rõ ràng hơn. 'delete a' là một * delete statement *, tức là một cấu trúc ngôn ngữ, không bị nhầm lẫn với toán tử' A :: delete', là toán tử * delete *, một hàm thực sự giải phóng bộ nhớ. Tôi không có tiêu chuẩn C++ ngay bây giờ, tôi có thể cung cấp tài liệu tham khảo một chút sau đó. – Andrey
- 1. Ý nghĩa của biểu tượng $ trong jQuery là gì?
- 2. Ý nghĩa của biểu tượng '@' trong Oracle SQL là gì?
- 3. Ý nghĩa của biểu tượng fiddler này là gì?
- 4. "Động" trong "destructor atexit động" nghĩa là gì?
- 5. Ý nghĩa của /// trong JavaScript là gì?
- 6. Ý nghĩa của ∃ là gì?
- 7. Biểu tượng "Điều đó" có ý nghĩa gì trong Scala
- 8. Các biểu tượng có ý nghĩa gì trong preg_match?
- 9. Các biểu tượng trong Eclipse có ý nghĩa gì?
- 10. Ý nghĩa của biểu thức "+ + a" là gì?
- 11. Ý nghĩa của + trong CSS là gì?
- 12. Ý nghĩa của @_ trong Perl là gì?
- 13. Ý nghĩa của '==' trong C là gì?
- 14. Ý nghĩa của $$ trong Ruby là gì?
- 15. Ý nghĩa của đồng bộ trong ngữ cảnh của Vector/ArrayList là gì?
- 16. Biểu tượng & ý nghĩa có ý nghĩa gì trong Mục tiêu-C?
- 17. Biểu tượng này có ý nghĩa gì trong PHP <? =
- 18. Ý nghĩa của dòng mã sau trong opencv là gì?
- 19. Ý nghĩa của "UseTaskFriendlySynchronizationContext" là gì?
- 20. Ý nghĩa của -532459699 là gì?
- 21. Ý nghĩa của id là gì?
- 22. Ý nghĩa của việc xuất khẩu một biểu tượng là gì?
- 23. Các biểu tượng git này có ý nghĩa gì?
- 24. Biểu tượng cơ sở dữ liệu có ý nghĩa gì trong các biểu tượng Eclipse?
- 25. ý nghĩa của "tóm lại" là gì
- 26. Ý nghĩa của Giao dịch là gì?
- 27. Android - ý nghĩa của StableID là gì?
- 28. Ý nghĩa của typedef này là gì?
- 29. Ý nghĩa của tệp dylib là gì?
- 30. Ý nghĩa của System.CLSCompliantAttribute là gì?
Tại sao bạn không chấp nhận anwser? – Liviu