Tôi đã đọc qua việc triển khai Danh sách (và nút của nó) bằng cách sử dụng các lớp và tôi đã tìm thấy một vài điều tôi không hiểu lắm. Dưới đây là đoạn code trong lớp Node mà tôi không hiểu:Kết hợp & và * toán tử
class Node {
private:
Data data;
Node* next;
public:
Node*& getNext();
};
Node*& Node::getNext()
{
return this->next;
}
là gì * & chính xác? Tôi không nhận được loại biến nào được trả về bằng phương thức đó.
Tôi nghĩ rằng tôi nhận được nó bây giờ, sau này tôi có những dòng này (bên trong Danh sách lớp):
Node** node = &first;
node = &(*node)->getNext();
Liệu đó có nghĩa là tôi đang lưu trữ địa chỉ của tiếp theo trong nút *?
Lưu ý: Câu hỏi thứ hai đã được trả lời trong các nhận xét. Cảm ơn bạn đã trả lời.
Đó là tham chiếu đến con trỏ. –
Bạn nên luôn đặt ra hai câu hỏi khi bạn nghĩ trả về một tham chiếu có thể là một ý tưởng hay: 1) Có phải điều được trả về thực sự thuộc sở hữu của người dùng 'Node' không? 2) Liệu tham chiếu không bao giờ tồn tại đối tượng mà nó đề cập đến? Thường chỉ xem xét trả về một tham chiếu nếu cả hai câu trả lời là có. –
Nó không phải là một nhà điều hành. – Puppy