thể trùng lặp:
Operator overloadingLàm thế nào để các nhà khai thác "<<" and ">>" làm I/O?
Tôi đang làm cho một sự trở lại đáng được chờ đợi để C++ và có một số ký hiệu cơ bản mà không thực sự dường như đó nổi bật trong các ngôn ngữ khác.
Nếu bạn nhìn vào dòng mã này
cout << "firstvalue is " << firstvalue << endl;
Tôi nhận ra gì này không. "Firstvalue là x" của nó ghi vào bàn điều khiển. x là giá trị của giá trị đầu tiên. Tuy nhiên, tôi không biết bất cứ điều gì về "< <" hoặc ">>" dấu ngoặc nhọn đôi. Tôi đã không thể nghiên cứu họ hoặc những gì họ làm vì tôi không biết tên chính thức cho họ.
Câu hỏi của tôi là, những gì thực sự xảy ra (từng bước) trong tuyên bố ở trên? Và những "< <" này là gì? Tôi nghĩ rằng tôi hiểu rằng cout là một chức năng thư viện chuẩn để ghi vào bàn điều khiển. Tuy nhiên tôi được sử dụng để ghi chú mục tiêu-c hoặc dấu chấm. Tôi không thấy những gì đối tượng này "cout" chức năng là một thành viên của.
Tôi có thể hiểu printf dễ dàng hơn một chút, vì ít nhất nó cung cấp niềng răng cho các đối số. ví dụ. printf ("chuỗi của bạn ở đây").
Đọc bắt buộc: [Hướng dẫn sách và danh sách sách chính xác C++] (http://stackoverflow.com/questions/388242/the-definitive-c-book-guide-and-list) –
Trong ngữ cảnh này, '<< 'là một [toán tử] (http://en.cppreference.com/w/cpp/io/basic_ostream/operator_ltlt) và biểu thức là kết quả của các cuộc gọi đến toán tử đó. – juanchopanza
'cout' không phải là một hàm. Nó là một đối tượng, mà toán tử '<<' bị quá tải. – Grizzly