Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
мини конспект по ООП.doc
Скачиваний:
34
Добавлен:
25.03.2015
Размер:
241.66 Кб
Скачать

5. Объявление класса? Общий вид объявления класса? Включение кода метода внутри объявления класса?

Объявление классахарактеризует объекты (внутренние переменные, типы поведения), но само по себе не создает новых данных. То есть при объявлении класса всего лишь описываются его данные и функции.

Данные класса называются полями данных, а функции класса –методами.

Поля и методы называются элементами класса.

Поля данных класса:

– могут иметь любой тип, кроме типа этого же класса (но могут быть указателями или ссылками на этот класс);

– могут быть описаны с модификатором const, но при этом они инициализируются только один раз (с помощью конструктора) и не могут изменяться;

– могут быть описаны с модификатором static (статические поля), но не как auto, extern и register.

Инициализация полей при описании не допускается!

Объявление метода содержит описание имени метода, типов его параметров и типа возвращаемого значения.

В С++ объявление класса начинается с ключевого слова class и во многом напоминает структуру в языке С, за исключением того, что вместе с полями данных могут быть объявлены заголовки процедур.

Общий вид объявления класса в С++:

class имя_класса

{

[private:]

скрытые (частные) данные и функции

public:

доступные (публичные) данные и функции

}; //описание класса заканчивается точкой с запятой

список объектов; // список объектов может быть пустым

Спецификаторы доступа privateиpublicуправляют видимостью элементов класса. По умолчанию все члены класса являются частными (private) и видимы только внутри класса.

Ключевое слово private:используется в случае, когда частные объявления делаются после публичных и ставится перед фрагментами кода, доступ к которым разрешен только из самого класса.

Ключевое слово public:обозначает область интерфейса – т. е. то, что видно извне класса.

Действие любого спецификатора распространяется до следующего спецификатора или до конца класса. Можно задавать несколько секций privateиpublic, порядок их следования значения не имеет.

Включение кода метода внутри объявления класса

Любой метод, определенный внутри объявления класса, является автоматически inline-методом, если только это допустимо. В таком случае нет необходимости предварять объявление метода (функции) ключевым словом inline.

Если внутри класса находится только объявление (заголовок) метода, сам метод определяется в другом месте программы с помощью операции доступа к области видимости (::). Например:

void monstr::draw(int x, int y, int scale, int position);

{

... // тело метода

}

6. Особенности локальных классов?

Классы могут быть глобальными, то есть объявленными вне любого блока, илокальными, то есть объявленными внутри блока (например, функции или другого класса).

Особенности локальных классов:

– внутри локального класса можно использовать типы, статические (static) и внешние (extern) переменные, внешние функции и элементы перечислений из области, в которой он описан;

– запрещается использовать внутри класса автоматические переменные из области, в которой он описан;

– локальный класс не может иметь статических элементов;

– методы локального класса могут быть описаны только внутри класса;

– если один класс вложен в другой класс, они не имеют каких-либо особых прав доступа к элементам друг друга и могут обращаться к ним только по общим правилам.