Tôi rất tiếc nếu câu hỏi này được báo cáo nhưng dường như tôi không thể tìm thấy giải pháp trực tuyến dễ dàng. Nếu tôi ghi đè toán tử()() thì hành vi này xác định điều gì?Toán tử()() xác định điều gì?
5
A
Trả lời
8
operator()
là toán tử gọi hàm, tức là bạn có thể sử dụng đối tượng thuộc loại tương ứng làm đối tượng hàm. Tập hợp thứ hai của dấu ngoặc đơn chứa danh sách các đối số (như thường lệ) rỗng. Ví dụ:
struct foo {
int operator()() { return 17; };
};
int main() {
foo f;
return f(); // use object like a function
}
Ví dụ trên chỉ cho biết cách người điều khiển được khai báo và gọi. Sử dụng thực tế có thể sẽ truy cập các biến thành viên trong toán tử. Đối tượng hàm được sử dụng ở nhiều nơi trong thư viện C++ chuẩn làm các điểm tùy chỉnh. Ưu điểm của việc sử dụng một đối tượng thay vì một con trỏ hàm là đối tượng hàm có thể có dữ liệu gắn liền với nó.
Các vấn đề liên quan
- 1. Toán tử^làm gì?
- 2. Xác định toán tử Vim mới với tham số
- 3. Tham chiếu không xác định cho toán tử mới
- 4. Bạn có thể xác định toán tử (***) trong F # không?
- 5. Ý nghĩa của toán tử & điều hành là gì?
- 6. Cách xác định hàm mới ('toán tử') trong MathJax?
- 7. Tham chiếu không xác định cho toán tử mới
- 8. Cách xác định toán tử rõ ràng trong F #?
- 9. Macro này xác định điều gì?
- 10. Lỗi "Thiếu toán hạng sau 'toán tử Bannon' - toán tử 'Bannon' là gì?
- 11. C# toán tử == làm gì chi tiết?
- 12. toán tử điều kiện trong Velocity
- 13. Ưu tiên của toán tử dấu phẩy bên trong toán tử điều kiện trong C++ là gì?
- 14. chỉ định theo lập trình toán tử
- 15. LINQ Cách xác định kiểu mặc định để sử dụng với Toán tử ElementAtOrDefault
- 16. Điều gì sẽ xảy ra nếu nhiều lớp của cùng một phần tử xác định: trước phần tử giả?
- 17. Toán tử == - javascript này là gì?
- 18. Toán tử điều hành trong ios
- 19. Toán tử điều kiện trong Python?
- 20. sử dụng toán tử có điều kiện
- 21. Toán tử điều kiện trong Transact-sql
- 22. Toán tử "= ~" trong Ruby là gì?
- 23. Điều gì! == toán tử so sánh trong PHP nghĩa là gì?
- 24. Toán tử void *() có nghĩa là gì?
- 25. Toán tử 'is' làm gì trong Python?
- 26. Chuỗi toán tử() {some code} làm gì?
- 27. Toán tử | = làm gì trong JavaScript?
- 28. Điều gì gây ra "loại toán hạng xấu cho toán tử nhị phân '=='" với loại thứ hai <nulltype>?
- 29. Toán tử || = đứng trong Ruby là gì?
- 30. Tên của toán tử này "+ =" là gì?
Đó là toán tử gọi hàm. Bạn có thể thấy điều này hữu ích: http://stackoverflow.com/questions/4421706/operator-overloading – chris