01/10/2018, 10:58
Member function in C++
Cho em hỏi tại sao toán tử gán phải là member function. Nếu mình dùng hàm friend hoặc non-member function cũng logic mà.
Bài liên quan
Cho em hỏi tại sao toán tử gán phải là member function. Nếu mình dùng hàm friend hoặc non-member function cũng logic mà.
Vì nó làm thay đổi giá trị của toán hạng trái.
Nếu toán tử 2 ngôi (binary operator) không làm thay đổi giá trị của 2 toán hạng thì dùng friend function.
Nếu toán tử 2 ngôi làm thay đổi toán hạng trái thì dùng member function
Toán tử 1 ngôi (unary operator) luôn là member fucntion
Các toán tử sau đây luôn dùng member function
Bạn khai báo operator sai rồi kìa
nếu xài friend hay non-member thì xài object làm gì nữa, cứ C struct mà táng cho lành
thay vì viết
student.setName(...)
cứ viết làsetName(&student, ...)
rồi lấy trình dịch C mà biên dịch, bỏ C++ đi vậy, cũng logic màcám ơn các bạn. mình hiểu rồi ạ :))
Vậy tại sao toán tử >> (input) dạng friend mà vẫn làm thay đổi đc toán hạng đấy thôi?
Phương thức cài sẵn không có friend đâu mà do các thành phần của kiểu đều phải bắt nguồn từ kiểu cơ bản nên cứ việc sử dụng
Mình xem lại rồi.
Operator >> với toán hạng trái là istream thì dùng friend function.
Quy tắc mình chép lại là bộ convention nên tuân thủ khi code C++. Chọn member hay non- member đều được
Thanks bạn đã góp ý
mình ko hiểu ý bạn lắm?