Tôi đang gỡ lỗi chương trình hay không. Tôi cần phải biết nếu constructor sao chép được gọi cho một số lớp. Vì tôi chưa định nghĩa constructor sao chép nên trình biên dịch đã tạo ra nó. Tôi đã cố gắng để xác định nó và đặt một số cout
có nhưng bây giờ tôi phải viết phần sao chép bằng tay. Lớp học rất lớn nên tôi không muốn làm điều đó. Có cách nào để kiểm tra xem nhà xây dựng bản sao có được gọi hay không nhưng tránh viết bản sao của các thành viên của nó. Làm thế nào tôi có thể gọi thực hiện mặc định của constructor sao chép?Kiểm tra xem hàm tạo bản sao có được gọi là
5
A
Trả lời
7
Bạn có thể sử dụng một mixin:
template<class D>
struct traced
{
public:
traced() = default;
traced(traced const&) { std::cout << typeid(D).name() << " copy ctor\n"; }
protected:
~traced() = default;
};
Và sau đó bạn chỉ kế thừa từ các lớp như sau:
class my_class : public traced<my_class>
{
// usual stuff...
};
Các vấn đề liên quan
- 1. Kiểm tra xem hàm có gọi hàm khác bằng Mocha
- 2. Cách kiểm tra xem hàm Javascript có phải là hàm tạo hay không
- 3. Tại sao hàm tạo bản sao này được gọi thay vì hàm tạo di chuyển?
- 4. Làm thế nào để có được hàm tạo bản sao được gọi là trên một hàm tạo variadic?
- 5. Kiểm tra xem một phương pháp học được gọi là
- 6. Tại sao hàm tạo bản sao được gọi thay vì hàm tạo chuyển đổi?
- 7. gọi hàm tạo bản sao bên trong hàm tạo khác
- 8. Tại sao hàm tạo bản sao ngầm ẩn gọi hàm tạo bản sao lớp cơ sở và hàm tạo bản sao được xác định không?
- 9. Kiểm tra xem biến có được khởi tạo
- 10. Kiểm tra xem hàm có gọi hàm khác trong mô-đun ES6 với Sinon.js
- 11. Trình tạo bản sao cơ sở không được gọi là
- 12. Kiểm tra xem loại có phải là bản đồ
- 13. cách kiểm tra xem exe có được đặt là LARGEADDRESSAWARE
- 14. Kiểm tra xem đây có phải là
- 15. Kiểm tra xem hộp kiểm 'này' có được kiểm tra là
- 16. Kiểm tra xem biểu tượng có được xác định là
- 17. Kiểm tra xem các biến có được đặt là
- 18. Kiểm tra xem cookie có được đặt
- 19. Tại sao hàm hủy được gọi nhiều hơn hàm tạo?
- 20. Cách kiểm tra xem tệp Global.asax có đang được gọi là
- 21. Có thể kiểm tra xem hàm có kiểu void trở
- 22. Không có hàm tạo bản sao nào có sẵn hoặc hàm tạo bản sao được khai báo 'rõ ràng'
- 23. Tại sao trình tạo bản sao không được gọi?
- 24. Làm cách nào để kiểm tra xem hàm có phải là hàm thuần túy không?
- 25. Cách kiểm tra xem JCheckBox có được kiểm tra không?
- 26. Kiểm tra xem javascript có được bật
- 27. Thử nghiệm đơn vị Java: cách dễ nhất để kiểm tra xem một cuộc gọi lại có được gọi là
- 28. Tại sao các biến mẫu được khởi tạo trước khi hàm tạo được gọi là?
- 29. Có cách nào để kiểm tra xem một hàm VBScript có được xác định không?
- 30. Kiểm tra xem khung dữ liệu có được sao chép hoặc xem trong Pandas
gì về việc kiểm tra các cuộc gọi stack? – elyashiv