Типы оградительных сооружений в морском порту: По расположению оградительных сооружений в плане различают волноломы, обе оконечности...
Папиллярные узоры пальцев рук - маркер спортивных способностей: дерматоглифические признаки формируются на 3-5 месяце беременности, не изменяются в течение жизни...
Топ:
Организация стока поверхностных вод: Наибольшее количество влаги на земном шаре испаряется с поверхности морей и океанов...
Выпускная квалификационная работа: Основная часть ВКР, как правило, состоит из двух-трех глав, каждая из которых, в свою очередь...
Интересное:
Лечение прогрессирующих форм рака: Одним из наиболее важных достижений экспериментальной химиотерапии опухолей, начатой в 60-х и реализованной в 70-х годах, является...
Мероприятия для защиты от морозного пучения грунтов: Инженерная защита от морозного (криогенного) пучения грунтов необходима для легких малоэтажных зданий и других сооружений...
Отражение на счетах бухгалтерского учета процесса приобретения: Процесс заготовления представляет систему экономических событий, включающих приобретение организацией у поставщиков сырья...
Дисциплины:
|
из
5.00
|
Заказать работу |
Содержание книги
Поиск на нашем сайте
|
|
|
|
Виртуальные функции — специальный вид функций-членов класса. Виртуальная функция отличается об обычной функции тем, что для обычной функции связывание вызова функции с ее определением осуществляется на этапе компиляции. Для виртуальных функций это происходит во время выполнения программы.
Для объявления виртуальной функции используется ключевое слово virtual. Функция-член класса может быть объявлена как виртуальная, если
· класс, содержащий виртуальную функцию, базовый в иерархии порождения;
· реализация функции зависит от класса и будет различной в каждом порожденном классе.
Определение того, какой экземпляр виртуальной функции вызывается по выражению вызова функции, зависит от класса объекта, адресуемого указателем или ссылкой, и осуществляется во время выполнения программы. Этот механизм называется динамическим (поздним) связыванием или разрешением типов во время выполнения.
Абстрактные базовые классы
Базовый класс иерархии типа обычно содержит ряд виртуальных функций, которые обеспечивают динамическую типизацию. Часто в самом базовом классе сами виртуальные функции фиктивны и имеют пустое тело. Определенное значение им придается лишь в порожденных классах. Такие функции называются чистыми виртуальными функциями.
Чистая виртуальная функция — это функция-член класса, тело которой не определено.
В базовом классе такая функция записывается следующим образом:
virtual Прототип Функции = 0;
Класс, имеющий по крайней мере одну чистую виртуальную функцию, называется абстрактным классом. Для иерархии типа полезно иметь абстрактный базовый класс. Он содержит общие свойства иерархии типа, но каждый порожденный класс реализует эти свойства по-своему.
4.7. Осуществить реализацию объектно-ориентированного программирования на языке С++.
/В программе объявлен класс простых дробей,
//описана переменная этого класса, выполнена
//обработка переменной
#include <iostream.h>
#include <math.h>
struct Frac{int P; int Q;};
Frac F;
//Объявление класса
class Drob{
Frac A;
public:
void Vvod(void);
int NOD(void);
void Sokr(void);
void Stepen(int N);
void Print(void);
};
//Описания функций — членов класса
void Drob::Vvod(void)
{ сои!«"Числитель?"; cin»A.P;
cout«"Знаменатель?"; cin»A.Q;
}
int Drob::NOD(void)
{ int M,N;
M=abs(A.P); N=A.Q;
while(M!=N)
{ if(M>N)
if(M%N!=0) M=M%N; else M=N;
else if(N%M!=0) N=N%M; else N=M;
}
return M;
}
void Drob::Sokr(void)
{ int X;
X=NOD();
if(A.P!=0)
{ A.P=A.P/X; A.Q=A.Q/X;}
else A.Q=1;
}
void Drob::Stepen(int N)
{ int i;
F.P=F.Q=1;
for(i=l;i<=N;i++)
{ F.P*=A.P; F.Q*=A.Q;}
}
void Drob::Print(void)
{ cout«"\n"«A.P«"/"«A.Q«"\n"; }
//Основная функция
void main(void)
{ Drob Y; //Объявление объекта
cout«"Вводите дробь! "<<"\n";
Y.VvodO;
Y.Sokr ();
cout«"flpo6b после сокращения:"<<"\n";
Y. P r i n t ();
Y.Stepen(2);
cout<<"flpo6b, возведенная в
квадрат:"<<"\п";
c o u t «F. P «" / " «F. Q «" \ n ";
Данная программа наглядно показывает пример реализации объектно-ориентированного программирования на языке С++.
Проведение компилирования программы и
Сборки исполняемого модуля.
Компилятор — программа, выполняющая компиляцию. На данный момент среди начинающих наиболее популярными компиляторами C/C++ являются GNU g++ (и его порты под различные ОС) и MS Visual Studio C++ различных версий.
При компилировании программы проверяется правильность ее написания. При ошибках в коде или при работе неправильно написанной программы будут выдаваться сообщения об ошибках. Согласно справочному руководству ошибки бывают четырех видов:
1. "ОШИБКА СИНТАКСИСА" (SYNTAX ERROR)
Возникает в случае неправильного написания программного кода, в результате чего компилятор не может распознать ключевые слова или данные. В следующем уроке будут рассмотрены основные правила синтаксиса.
2. "НЕСООТВЕТСТВИЕ ПАРАМЕТРОВ" (PARAMETER MISMATCH)
Возникает, когда для какой-либо команды были не верно указаны параметры. Например, используются переменные ошибочного типа, пропущены необходимые параметры.
3. "ПРЕДУПРЕЖДЕНИЕ РЕЖИМА ВЫПОЛНЕНИЯ" (RUNTIME WARNING)
Предупреждения выводятся с целью предотвращения ошибок, но не всегда требуют какого-либо внимания.
4. "ОШИБКА РЕЖИМА ВЫПОЛНЕНИЯ" (RUNTIME ERROR)
Такая ошибка возникает во время работы программы. Она приводит к невозможности ее дальнейшей работы и к закрытию приложения.
|
|
|
Кормораздатчик мобильный электрифицированный: схема и процесс работы устройства...
Своеобразие русской архитектуры: Основной материал – дерево – быстрота постройки, но недолговечность и необходимость деления...
История создания датчика движения: Первый прибор для обнаружения движения был изобретен немецким физиком Генрихом Герцем...
Опора деревянной одностоечной и способы укрепление угловых опор: Опоры ВЛ - конструкции, предназначенные для поддерживания проводов на необходимой высоте над землей, водой...
© cyberpedia.su 2017-2026 - Не является автором материалов. Исключительное право сохранено за автором текста.
Если вы не хотите, чтобы данный материал был у нас на сайте, перейдите по ссылке: Нарушение авторских прав. Мы поможем в написании вашей работы!