Tôi đang tạo bộ tìm kiếm rò rỉ bộ nhớ trong chương trình của mình, nhưng cách quá tải mới và xóa (cũng mới [] và xóa []) dường như không làm gì cả.quá tải mới/xóa
void* operator new (unsigned int size, const char* filename, int line)
{
void* ptr = new void[size];
memleakfinder.AddTrack(ptr,size,filename,line);
return ptr;
}
Cách tôi quá tải new
được hiển thị trong đoạn mã ở trên. Tôi đoán đó là một cái gì đó với các nhà điều hành trở về void * nhưng tôi không biết phải làm gì về nó.
"dường như không làm gì cả": ý của bạn là gì? Bạn đã quá tải toán tử, nhưng bạn chưa * ghi đè * toán tử mặc định mới, vì vậy "new x" gọi mặc định mới trong khi "new (filename, line) x" gọi phiên bản quá tải của bạn. –