5. С++. Классы.
Класс в программировании — это тип данных, имеющий некоторые общие черты с типом структуры. Объекты (экземпляры) класса - это переменные такого типа. Класс, как и структура, может содержать поля данных. Кроме этого, класс может содержать методы (т.е. функции, процедуры).
Определение (объявление) класса в языке C++ выглядит следующим образом:
class MyClass: public ParentClass // ParentClass — класс-предок, который должен быть определён ранее
{
public:
// элементы в этой секции доступны из любой части программы
MyClass(); // конструктор
~MyClass(); // деструктор
int classmember;
protected:
// элементы в этой секции доступны из класса и его потомков
private:
// элементы в этой секции доступны только из класса; это область доступа по умолчанию
};
В конце объявления класса ставится точка с запятой.
Если класс содержит методы (функции), то эти функции также должны быть определены.
MyClass::MyClass()
{
// определение конструктора
}
MyClass::~MyClass()
{
// определение деструктора
}
После объявления класс считается полноценным типом данных и, экземпляры класса могут быть созданы следующим образом:
MyClass myinstance;
Обращение к членам класса:
myinstance.classmember
Уничтожается экземпляр класса, как и любая переменная, только в случае, если функция, в которой он был создан, завершила работу или если была принудительно освобождена динамическая память, выделенная под экземпляр.
6. C++. Методы.
Описание функций в теле класса
В теле класса можно указать только заголовок функции, а можно описать всю функцию (см. пример с функцией Alloc ниже. В этом случае она считается встраиваемой (inline))
Константные функции-члены
Нестатические функции-члены (и только они) могут иметь описатель const
class Array
{
...
inline double operator[] (int n) const;
Такие функции не имеют права изменять поля класса (кроме полей, определённых как mutable). Если они пытаются это сделать, компилятор должен выдать сообщение об ошибке.
Do'stlaringiz bilan baham: |