|
||
Lesson 7
Objective
|
Member functions Understand how to declare a member function. |
|
|
The member function declaration is included in the struct declaration and is invoked by using access methods for structure
members. The idea is that the functionality required by the struct data type should be directly included in the
struct declaration. This improves the encapsulation of the ADT by packaging its operations directly with its data
representation.
Here is an example of a stack ADT that declares the various functions associated with the stack as member functions: const int max_len = 40; struct ch_stack { //data representation char s[max_len]; int top; enum { EMPTY = -1, FULL = max_len - 1 }; //operations represented as member functions void reset() { top = EMPTY; } void push(char c) { assert(top != FULL); top++; s[top] = c; } char pop() { assert(top!= EMPTY); return s[top--]; } char top_of() { assert(top!= EMPTY); return s[top]; } bool empty() { return (top == EMPTY); } bool full() { return (top == FULL); } }; |
||
|
|
||