Автор: Пользователь скрыл имя, 19 Марта 2012 в 21:31, лекция
Класс — это сложная структура, включающая, помимо описания данных, описание процедур и функций, которые могут быть выполнены над представителем класса — объектом. В Delphi объект — это динамическая структура. Переменная-объект содержит не данные, а ссылку на данные объекта. Поэтому программист должен позаботиться о выделении памяти для этих данных.
Основные принципы объектно-ориентированного программирования: инкапсуляция, наследование, полиморфизм. Пример работы с классами.
Класс — это сложная структура, включающая, помимо описания данных, описание процедур и функций, которые могут быть выполнены над представителем класса — объектом. В Delphi объект — это динамическая структура. Переменная-объект содержит не данные, а ссылку на данные объекта. Поэтому программист должен позаботиться о выделении памяти для этих данных.
Программист сам может написать свой класс и сделать его главным. Класс- общее описание совокупности объектов. Можем включать поля, значение которых созд. конкретные свойства объекта и методы (процедуры), которые могут выполнять объект или классы. Инкапсуляция – в классе собрано все что необходимо для описания объекта, все его свойства и его методы, к тому же часть методов может быть доступна, а часть скрытой. Наследование – разрабатывают не просто классы, а иерархии классов. Класс получает все тоже самое как в базовом классе. Полиморфизм – в подклассах можно задав новое поведение объектов,функ.при этом имеют точно такие же названия и параметры, но компилятор при этом не ошибается и вызовет свои методы.. Имеет такие же параметры, но компьютер не ошибается и вызовет все правильно. Класс представляет собой главное инструментальное средство C++ для объектно-ориентированного программирования. Класс очень похож на структуру, в которой сгруппированы элементы, соответствующие данным о некотором объекте, и оперирующие этими данными функции (называемые методами). Классы принято собирать в иерархии классов. При этом старший класс называется базовым. Пример:класс матрицы.
class Matrix
{public:
Matrix(unsigned int width, unsigned int height)
:array(width, std::vector<T>(height)) {}
std::vector<T>& operator[](unsigned int row) { return array[row]; }
const std::vector<T>& operator[](unsigned int row) const { return array[row]; }
unsigned int width() const { return (unsigned int)array.size(); }
unsigned int height() const { return (unsigned int)array[0].size(); }
Matrix transp() const {
Matrix m(height(), width());
for(unsigned int i=0; i < width(); ++i)
for(unsigned int j=0; j < height(); ++j)
m[j][i] = (*this)[i][j];
return m; }
private:
std::vector< std::vector<T> > array;};