Cho một lớp học:Toán tử << overloading hoạt động như thế nào?
struct employee {
string name;
string ID;
string phone;
string department;
};
Chức năng sau hoạt động như thế nào?
ostream &operator<<(ostream &s, employee &o)
{
s << o.name << endl;
s << "Emp#: " << o.ID << endl;
s << "Dept: " << o.department << endl;
s << "Phone: " << o.phone << endl;
return s;
}
cout << e;
sản xuất định dạng đầu ra cho employee e
nhất định.
Ví dụ đầu ra:
Alex Johnson
Emp#: 5719
Dept: Repair
Phone: 555-0174
Tôi không thể hiểu làm thế nào các chức năng ostream hoạt động. Làm thế nào để nó có được tham số "ostream & s"? Làm thế nào nó quá tải toán tử "< <" và cách hoạt động của toán tử < <? Làm thế nào nó có thể được sử dụng để viết tất cả các thông tin về một nhân viên? Ai đó có thể vui lòng trả lời những câu hỏi này theo thuật ngữ của giáo dân không?
nhà khai thác quá tải là đường chủ yếu chỉ là cú pháp cho một cuộc gọi chức năng, Khái niệm Ví dụ 'cout << * itr' tương đương với câu lệnh' operator << (cout, * itr) ', và trên thực tế, sử dụng cú pháp này hoạt động chính xác theo cùng một cách. – user657267
Bạn đang beter off học những điều này từ một cuốn sách. –
Lưu ý: Chữ ký của toán tử đầu ra quá tải sẽ là 'ostream & operator << (ostream & s, const employee & o)' và tất cả các hàm getter cũng phải là 'const', vì không có thay đổi trong' Employee 'instance. –