Tôi đang nghiên cứu cấu trúc dữ liệu (Danh sách, Ngăn xếp, Hàng đợi) và phần mã này làm tôi bối rối.toán tử gán trong tham số hàm C++
ListNode(const Object& theElement = Object(), ListNode * node = NULL);
template<class Object>
ListNode<Object>::ListNode(const Object& theElement, ListNode<Object> * node) {
element = theElement;
next = node;
}
- Tại sao có toán tử gán trong thông số chức năng?
- Số điện thoại
Object()
gọi là gì?
Tôi bị cám dỗ để lên bỏ phiếu nếu bạn muốn đề cập rằng các thông số mặc định là một trong những tính năng hơn ++ "ác" C. Họ biến các nhà xây dựng vô tội trong việc chuyển đổi các nhà thầu hoặc các nhà thầu mặc định. Chúng làm cho các hàm 'bind' trở nên khó khăn. Đó là một trở ngại khi chỉ có một số tham số cần được chỉ định và các tham số khác được đặt mặc định. – pmr
Tôi cũng vậy. Một kích thước không phù hợp với tất cả. Đôi khi chúng rất hữu ích. – Spook
@pmr, tôi không nhất thiết phải đồng ý với bạn rằng chúng "ác". Chúng là một cách hữu ích để tránh lặp lại chính bạn bằng cách viết nhiều hàm tạo, khi bạn chỉ đơn giản có thể cung cấp một hàm tạo với một tham số mặc định. Việc triển khai thư viện chuẩn thường tận dụng điều này bằng cách, ví dụ: 'vectơ (const allocator_type & a = allocator_type());' –