分页:
上一页 1 2 3 4 5 6 7 8 [9]
{
return NULL;
}
结论:链表有两种不同的数据。存储于链表中的元素的值由链表的用户负责(并且只有用户负责,链表本身不阻止用户将第三个元素变成第五个),而链表底层结构的数据(如 next 指针等)值由链表负责(并且只有链表负责,也就是说链表不让用户改变(甚至看到!)可变的next 指针)。
因此 get()/set() 方法只获取和设置链表的元素,而不是链表的底层结构。由于链表隐藏了底层的指针等结构,因此它能够作非常严格的承诺(例如,如果它是双重链表,它可以保证每一个后向指针都被下一个 Node 的前向指针匹配)。
我们看了这个例子,类的一些数据的值由用户负责(这种情况下需要有针对数据的get()/set()方法),但对于类所控制的数据则不必有get()/set()方法。
注意:这个例子的目的不是为了告诉你如何写一个链表类。实际上不要自己做链表类,而应该使用编译器所提供的“容器类”的一种。理论上来说,要使用标准容器类之一,如:std::list 模板。
分页:
上一页 1 2 3 4 5 6 7 8 [9]