I do not really understand this code
external is a class , and internal is a struct , can someone help me explain this?
class Stack { struct Link { void* data; Link* next; Link(void* dat, Link* nxt): data(dat),next(nxt) {} }* head; public: Stack():head(0) {} ~Stack() { require(head==0,"Stack not empty"); } void push(void* dat) { head = new Link( dat, head ); } void peek() const { return head ? head->data : 0; } void* pop() { if(head == 0) return 0; void* result = head->data; Link* oldHead = head; head = head->next; delete oldHead; return result; } };
my question focuses on the first few lines
class Stack { struct Link { void* data; Link* next; Link(void* dat, Link* nxt): data(dat),next(nxt) {} }* head;
what's the relationship between class Stack and struct Link ?
source share