Функции-члены, которые определены внутри структуры, являются встраевыми. Обычно, толь маленькие, часто используемые функции определяются внутри структуры(как в предыдущем уроке). Что бы определить функцию-член вне структуры используется оператор "::". Давайте это наглядно покажем переделав структуру из предыдущего урока.
struct stack
{
char s[1000];
int top;
void reset();
void push(char c);
char pop();
};
void stack::reset()
{
top = -1;
}
void stack::push(char c)
{
++top;
s[top] = c;
}
char stack::pop()
{
--top;
return s[top];
}
Запись void stack::reset() говорит, что функция reset() принадлежит структуре stack. Благодаря оператору "::" мы можем иметь одинаковые имена функций для разных типов структур.