Tôi đang cố gắng quá tải toán tử tham chiếu, nhưng biên dịch các kết quả mã sau vào lỗi 'initializing' : cannot convert from 'X' to 'int'
:quá tải dereference hành
struct X {
void f() {}
int operator*() const { return 5; }
};
int main()
{
X* x = new X;
int t = *x;
delete x;
return -898;
}
Tôi đang làm gì sai?
'hành int 'có rất nhiều gotchas và tốt nhất là tránh. Toán tử dereference sử dụng hợp pháp như mô phỏng con trỏ. – Potatoswatter
@David: các chuyển đổi thành 'bool' có nhiều hơn các giá trị khác, nhưng có thể đó là một giọt trong thùng; v) – Potatoswatter
@David: Câu hỏi là về' toán tử int * ', không phải' toán tử int * ' – visitor