Not at all like the private members of an object, which I think was the analogy being made.
struct list {
float node;
struct list *next;
}
Above is the data structure; it implies operations.
Below is an interface (class, in the article); it implies data. #define LIST_H
float index(struct list *ls, int i);
int find(struct list *ls, float x);
void sort(struct list *ls);That said I don't think that any particular set of operations is implied. A data structure will be more suitable for some operations than others, but it won't really require anything in particular.
The question of where data is stored for an object is far less important than how to access data in a data structure. Like, the whole reason the data structure is designed the way it is, is to access it in particular ways.
If you bother to take a look to C APIs, you'll find the familiar "handle" parameter, equivalent to the "this" or "self" of OO languages. Setting aside all the philosophical mumbo jumbo, OO is syntactic sugar over those interfaces.
The text would have been a lot clearer if that would have been more explicit from the beginning!
The existence of List implies that operations must exist to insert an element in a list, access to elements in a list, find out the size of the list, etc.
Edit: BTW 'implies' is the the magic word in the text. It's what creates all the appearance of meaning. Try to replace it what something else. Now I remember why I disliked Plato so much.