Основная идея объектно-ориентированного подхода является возможность объединить в структуре не только данные, которые описывают какой то объект или сущность, но имеют встроенные функции, которые определяют взаимодействие классов между собой и с другими частями программы.
При этом функции внутри класса называют методами или функциями членами класса.
При таком подходе поля отвечают за количественные характеристики объекта, а методы за его качественные характеристики (поведение).
Для начала посмотрим как расширяется определение структур в С++.
struct Stack
{int Elements[50];
unsigned int top;
void Init(){top=0;}
void Push(int NewElement);
int Pop();
int Top(){return Elements[top];}
void View();
};
Функции принадлежащие классу описываются как обычные функции. Только для того чтобы указать, что эта функция относится именно к этому классу, необходимо заголовок функции записать следующим образом.
type <klass name>::<funct.name>(<peram>)
Функции, члены класса обращаются к полям своего класса без даполнительного указания спецификации структуры. Так же методы обращаются по умолчанию только к экземпляру того класса, для которого они были вызваны.
Определение методов для класса:
void Stack::Push(int NewElement)
{if (top<49)
Elements[top++]=NewElement;
}
int Stack::Pop()
{if (top>0) return Elements[top--];
else {cout<<”Стек пуст \n ”; return 0;}
}
void Stack::View()
{
for(int i=top; i>0; --i)
cout<<Elements[i]<<endl;
}
После создания типа класса, для его использования необходимо отвести место под экземпляр класса. Как и обычные структуры, классы могут иметь несколько экземпляров.
Теперь приведем пример использования класса.
void main()
{Stack A,b;
A.Init();
b.Init();
A.Push(5);
b.Push(10);
b.Push(45);
A.Push(3);
cout<<b.Pop()<<endl;
cout<<endl;
A.View();
cout<<endl;
b.View();
}
Похожие записи
No user прокомментировали сообщение
Оставить комментарий