Logo GenDocs.ru

Поиск по сайту:  


Загрузка...

Ответы на экзаменационные вопросы по объектно-ориентированному программированию - файл 1.doc


Ответы на экзаменационные вопросы по объектно-ориентированному программированию
скачать (78 kb.)

Доступные файлы (1):

1.doc78kb.17.11.2011 16:14скачать

содержание
Загрузка...

1.doc

Реклама MarketGid:
Загрузка...

  1. Принципы объектно-ориентированного программирования.


ООП базируется на 3 принципах:

1) Инкапсуляция – это объединение в одном объекте данных и методов их обработки;

2) Наследование – создание новых объектов на базе ранее определенных, при этом новые объекты (потомки) как сохраняют свойства своих родителей, так и обладают своими специфическими свойствами;

3) Полиморфизм – возможность замещения метода объекта-родителя одноименными методами объекта-потомка.
2. Класс и объект С++. Назначение элементов и методов класса.
Класс представляет собой главное инструментальное средство С++ для ООП.
^ Класс – это переменная, в которой определены все атрибуты будущего объекта, а также его

методы.
Объект – это переменная, объявленная от объектного типа (экземпляра объекта).
Атрибуты – это переменные, которые характеризуют объект. Атрибуты объявляются внутри класса.

Функции, описываемые для данного объекта, называют методами.

Методы объекта должны обрабатывать лишь данные своего объекта, не обращаясь к данным другого объекта.
^ 3. Общие и частные элементы класса.
Доступ к элементам класса может быть полным (общим) – обеспечивается меткой public -, или частным – меткой private.
Общий доступ означает, что программа может обращаться к любому элементу класса, используя оператор “ . ”.
Частный доступ означает, что программа может обращаться к элементу класса только через функцию данного класса.
^ 4. Конструктор и деструктор класса.
Чтобы упростить процесс инициализации элементов данных класса, в С++ используют специальную функцию, называемую конструктором, которая запускается для каждого создаваемого объекта.

Конструктор представляет собой метод класса, которое имеет такое же имя, как и класс.

Конструктор не возвращает значение вызвавшей его функции и для него также не используется тип void.
Деструктор представляет собой функцию, которую С++ автоматически запускает, когда программа уничтожает объект.

Имеет такое же имя, как и класс объекта. Однако имя деструктора предваряется .

Прототип деструктора ставится после прототипа конструктора в методах класса.

^ 5.Наследование класса. Пример простого наследования класса.
Наследование – создание новых объектов на базе ранее определенных, при этом новые объекты (потомки) как сохраняют свойства своих родителей, так и обладают своими специфическими свойствами.
При наследовании С++ позволяет строить новый объект (производный класс), используя характеристики уже существующего объекта (базового класса).

При наследовании используется метка protected для того, чтобы производный класс мог обращаться к защищенным элементам, как будто они являются общими.
Порождая класс из базового класса, снижается объем требуемого программирования и исключается дублирование кода внутри программы.
Пример простого наследования:
#include <iostream.h>

#include <string.h>

//Объявление базового классаc

class exm1{

public: exm1(char *);

void show_exm(void);

protected: char mes[64];

};

exm1::exm1(char *mes)

{

strcpy(exm1::mes,mes) ;

}

void exm1::show_exm(void)

{

cout<<”Message:”<<mes;

}

class exm2:public exm1{

public:exm2(char *,char *);

void show_newstr(void);

private: char strnew[5];

};

exm2::exm2 (char *mes, char*strnew)

{

strcpy(exm2 ::strnew,strnew) ;

}

void exm2 ::show_newstr(void)

{

cout<<endl;

show_exm();

cout<<endl<<strnew;

}

void main(void)

{

exm1 example1(“This is message of class№1.”);

exm2 example2(“This is message of class№2.”,”Done.”);

example1.show_exm();

example2.show_newstr();

}
^ 6. Множественное наследование. Базовый и производный классы.
С++ позволяет порождать производный класс из нескольких базовых классов.

Когда класс унаследует характеристики нескольких классов, то используют множественное наследование.

Для порождения класса из нескольких базовых после имени нового класса и : указываются имена базовых классов, разделенных , .
Базовый класс позволяет на своей основе строить производные классы. ^ Производные классы в свою очередь могут служить базовыми классами для создания объектов на их основе. Базовый класс, на котором были построены все производные классы, называется суперклассом.

^ 7. Полиморфные объекты.
В общем случае полиморфизм представляет способность объекта изменять форму.
Полиморфизм – возможность замещения метода объекта-родителя одноименными методами объекта-потомка.
При работе с объектами довольно типичной является ситуация, когда сложный метод приходится создавать заново для каждого типа объекта, хотя различия в поведении объектов могут быть небольшими.

В этом случае обычно создается общий сложный метод, а различия вносятся в сменные подчиненные методы.

Реализация такого подхода осуществляется с помощью виртуальных подчиненных методов. С этой целью после заголовка каждого сменного метода требуется написать virtual. Заголовки виртуальных методов предка и потомка должны в точности совпадать, причем оба метода должны быть виртуальными.
Полиморфизм в С++ реализуется не только через виртуальные методы, но и через механизм перегрузки: внутри класса допускается существование нескольких функций с одинаковым именем, но различающимися типами результатов и наборами формальных параметров.
^ 8. Ссылки и указатели.
Указатель представляет собой адрес памяти, который указывает или ссылается на определенный участок.

Чтобы объявить указатель, имя переменной предваряется *.
^ Ссылка позволяет создать псевдоним или второе имя для переменных.

Синтаксис: <тип>& <псевдоним>=<имя переменной>;

Ссылка не является переменной.
^ 9. Динамические структуры данных.
Существует способ выделения памяти по данные, при котором память под величины отводится во время выполнения программы. Такой способ называется динамическим.

Величины называют динамическими.
Использование динамических величин предоставляет ряд положительных возможностей:

  1. увеличение объема обрабатываемых данных;

  2. высвобождение памяти от данных, потребность в которых отпала;

  3. возможность создавать структуры данных переменного размера.

Доступ к выделенным участкам динамической памяти (динамическим переменным) производится только через указатель.

Время жизни динамической переменной измеряется от точки создания и до конца программы или явного освобождения памяти.
В С++ используют 2 способа работы с динамической памятью:

1) семейство функций malloc;

2) операции new и delete.
^ 10. Примеры реализаций основных операций с динамическими структурами данных.
Для создания динамических переменных в С++ можно создавать 3 вида указателей:

  1. указатель на объект;

  2. указатель на функцию;

  3. указатель на void.


Одной из наиболее распространенных реализаций основных операций с динамическими структурами данных является создание массива переменной длины – динамического массива.

#include <iostream.h>

void main()

{

int count,i;

float *m=new float[‘ ‘];

time_t t;

srand (unsigned) time(&t);

cout<<”Введите количество элементов в массиве:”;

cin>>count ;

cout<<endl;

for (i=0;i<count;i++)

{

m[i]=(float)(rand()%25)/5;

cout<<m[i]<<” ”;

}

delete m;

}
^ 11. Инструментальная среда C++Builder. Редактор кода. Конструктор форм. Главное окно.
C++Builder – интегрированная среда разработки программ, работающих под Windows.

Данная среда обеспечивает визуальное программирование и событийное программирование.

Среда состоит из следующих основных окон:

  1. Главное окно, в котором находятся все основные управляющие элементы среды в виде меню панели инструментов.

  2. Окно конструктора формы представляет собой заготовку внешнего вида будущей программы

  3. ^ Редактор кода служит для прописывания команд на языке С++ (обработчиков событий), выполнение которых связано с работой программы. Окно кода состоит из 2 частей: каждая часть представляет собой отдельный файл. Файл с расширением .сср – называется файлом реализации (содержит описание функций), а с расширением .hзаголовочным файлом (файл интерфейса, который содержит объявление классов, функций, переменных и т.д.).


^ 12. Событие. Обработчик события. Инспектор объектов.
Событие – это специальный метод, который реагирует на потоки, возникающие в ОС или в программе.

Обработчик события – это процедура обработки события – реакция на событие.
Окно инспектора объектов состоит из 2 частей:

  1. Properties (свойства) описывает свойства объекта;

  2. Events (события) описывает события, которые можно совершать над объектом.

^ 13. Edit, Memo и их свойства.
Edit предназначен для ввода одной строки текста. Основное свойство Text.

Memo предназначен для ввода нескольких строк текста. Основное свойство Lines.
^ 14. Label, MaskEdit, RichEdit и их свойства.
Label предназначен для вывода статистического или генерируемого программой текста. Основное свойство Caption. Свойство AutoSize устанавливает размер надписи по числу символов. Свойство BorderStyle окружает текст рельефной рамкой. Свойство Font задает размер и стиль шрифта. Свойство Alignment задает расположение текста.
MaskEdit служит для ввода текста по определенному шаблону. Для задания шаблона используется свойство EditMask.
RichEdit предназначен для ввода и вывода нескольких строк текста. Основное свойство Lines.
^ 15. CheckBox, RadioButton.
CheckBox представляет собой элемент независимого выбора. Основное свойство Caption и Checked.
RadioButton – элемент для выбора взаимозависимых элементов. Основное свойство Caption и Checked.
^ 16. ComboBox, ListBox.
ComboBox – компонент представляет собой комбинированное поле, сочетающее возможности текстового поля и списка. Основное свойство Items и Text.

Свойство ^ Style позволяет модифицировать внешний вид компонента. CS Simple всегда модифицирует внешний вид в виде всегда раскрытого списка.
ListBox – компонент представляет собой поле, сочетающее возможности текстового поля и списка. Основное свойство Items.

Свойство Style позволяет модифицировать внешний вид компонента.
^ 18. Button, BitBtn, SpeedButton.
Button представляет собой командную кнопку и используется для управления программами. Название кнопки вводится в свойство Caption. Подсказку устанавливают в свойство Hint. Для отображения подсказок ShowHint->True.
BitBtn представляет собой пиктографическую кнопку. В свойстве Glyph устанавливается растровое изображение. В NumGlyph устанавливается количество пиктограмм в растре. Растр имеет размер 48*16 (3 состояния: нормальное, запрещенное, нажатое).
SpeedButton может фиксироваться в утопленном состоянии. Для фиксации GroupIndex=0. AllowAllUp устанавливается в true или в false. Индикатором свойства кнопки служит свойство Down, которое доступно для записи (true – кнопка утоплена).

^ 17. Компоненты Menu. Menu Designer.
MainMenu – определяет главное меню формы. На форму можно поместить сколько угодно объектов этого класса, но отображаться в полосе меню в верхней части формы будет только тот из них, который указан в свойстве Menu формы.

Для введения опций используется ^ Menu Designer. В названиях опций меню для указания букв выбора используется & перед той буквой, которая будет использоваться для быстрого выбора.

Для создания разделительной черты, отделяющей одну группу опций от другой, используется “-”.

Для создания разветвленных меню нужно выбрать подопцию и нажать клавиши Ctrl+-> или из контекстного меню выбрать SubMenu.

Для введения небольших изображений в подопции меню используют свойство BitMap.
PopupMenu – используется для создания контекстных или вспомогательных меню. Может быть создано для любого оконного компонента. В свойстве компонента PopupMenu указывается имя компонента-меню.

Для введения опций используется Menu Designer.
^ 19. Image, Shape.
Image служит для размещения на форме одного из 3-х типов изображений (растровая картинка, пиктограмма, метафайл). Основное свойство Picture. Свойство AutoSize разрешает или запрещает изменять размеры компонента так, чтобы в него полностью загрузилось изображение. Свойство Stretch разрешает или запрещает изменять размер изображения так, чтобы оно целиком заполняло клиентскую область компонента.
Shape рисует одну из простейших геометрических фигур, определенную в свойстве ShapeType. Для контурных примитивов используется свойство Pen, цвет площадной фигуры определяется свойством Brush.
^ 20. Компоненты-контейнеры Panel, Bevel, GroupBox, RadioGroup.
Panel представляет собой компонент для выделения группы элементов или отделения их друг от друга. С помощью этого компонента можно вводить дополнительные заголовки в приложения. Font меняет размер, цвет, стиль шрифта.
^ Bevel – аналог компоненту Panel. Свойство Shape определяет вид компонента. Style задает стиль компонента: вдавленный или выпуклый.
GroupBox – аналог компоненту Panel. Свойство Caption задает заголовок группы.
RadioGroup – набор переключателей типа RadioButton. Свойство Items служит для перечисления всех возможных переключателей группы. Свойство Columns группирует переключатели в заданное количество столбцов. Caption задает заголовок набора.

^ 21. Компоненты диапазона TrackBar, ProgressBar.
TrackBar используется для выбора значения из некоторого диапазона. Свойства Min, Max, LineSize, Orientation, Position.
ProgressBar позволяет программе отобразить значения, лежащие в некотором диапазоне, показывая степень завершенности процесса. Свойства Min, Max, Orientation, Position, Smooth.
^ 22. Компонент Timer.
Timer предназначен для управления событиями зависящими от времени. Основное свойство Interval. Событие OnTimer.
23 Status Bar.
Свойство Panels позволяет StatusBar делить на области. В SimpleText можно загружать текст текущего статуса. SimplePanel->True – переход в панель простого вида.
24 ToolBar, PageScroller.
ToolBar представляет собой контейнер, содержащий управляющие элементы.

PageScroller представляет собой контейнер, который позволяет прокручивать содержащиеся в нем управляющие элементы.


Скачать файл (78 kb.)

Поиск по сайту:  

© gendocs.ru
При копировании укажите ссылку.
обратиться к администрации
Рейтинг@Mail.ru