#if !defined( _FILTER_HPP_ )
#define _FILTER_HPP_
extern const double gc_h;
//! Класс фильтра.
class filter_t {
public:
//! Вывод поля класса "фильтрованная энергия".
void
print_frien_filter();
//! Вывод поля класса "фильтрованная энергия".
double
print_energy();
//! Установка частоты фильтра, обнуление энергии.
filter_t(int friengucy);
//! Определяем метод посылки фотона через фильтр
void
filt(int friengucy_foton);
//! Задем деструктор, выводящий в консоль сумму отфильтрованной энергии.
~filter_t();
//! Метод, обнуляющий отфильтрова нную энергию.
void
zero_energy(){
m_energy=0;
}
private:
//! Фильтрующая частота.
int m_friengucy_filter;
//! Суммарная отфильтрованная энергия.
double m_energy;
}; // class filter
#endif
#if !defined( _FILTER_MOD_HPP_ )
#define _FILTER_MOD_HPP_
//! Класс модернизированного фильтра.
#include "filter.hpp"
class filter_mod_t : public filter_t
{
public:
void
//! Оператор посылки фотона через фильтр
operator>>(int friengucy_foton_mod);
//! Оператор обнуления отфильтрованной энергии
void
operator!();
filter_mod_t(int friengucy);
};
#endif
#if !defined( _FILTER_MOD_HPP_ )
#define _FILTER_MOD_HPP_
//! Љ« бб ¬®¤ҐаЁ§Ёа®ў ®Ј® дЁ«мва .
#include "errors.hpp"
#include "filter.hpp"
class filter_mod_t : public filter_t
{
public:
void
//! Оператор посылки фотон через фильтр
operator>>(int friengucy_foton_mod);
//! Оператор обнуления отфильтров нной энергии void
operator!();
//! Метод проверки на неотрицательность передоваемого параметра.
void
filter_mod_t::set_frien( double frien );
filter_mod_t(int friengucy);
};
#endif
#include "filter_mod.hpp"
#include <iostream>
//! Оператор >> - посылка фотона в фильтр.
void
filter_mod_t::operator>>(int friengucy_foton_mod){
filt(friengucy_foton_mod);
}
//! Оператор ! - обнуление отфильтрованной энергии.
void
filter_mod_t::operator!(){
zero_energy();
}
filter_mod_t::filter_mod_t(int friengucy) : filter_t(friengucy){
};
void
filter_mod_t::set_frien( double frien ){
if (frien<0){
frien=0;
throw my_exception("╫рёЄюЄр ЇюЄюэр юЄЁшЎрЄхы№эр!");
};
}
#if !defined (_ERRORS_HPP_)
#define _ERRORS_HPP_
#include "filter_mod.hpp"
#include <fstream>
#include <iomanip.h>
/*!
\class my_exception_ex_t.
\brief Класс предназначен для обработки некорректного ввода данных, в частности, для
обработки ввода отрицательного зночения скорости.
\warning Данный класс не имеет аналогов и предназначен для
внутреннего использования.
\attention При использовании могут осуществлятьсяпоследующие модификации,
интерфейс методов при этом не изменится.
*/
class my_exception{
private:
string m_description;
public:
my_exception( string description );
void
set_description( string description );
string
get_description();
};
#endif
# include "errors.hpp"
/*! Далее представлен исполняемый код класса my_exception_ex_t, хранящего
текстовое описание ошибки. */
my_exception::my_exception( string description )
{
set_description( description );
}
void
my_exception::set_description( string description )
{
m_description = description;
}
string
my_exception::get_description()
{
return m_description;
}
Скриншот документации Doxygen:
Скриншот
рабочего окна программы:
Вывод: при выполнении лабораторной работы были изучены механизмы, способы вызова и обработки исключений в среде C++ Builder.
Уважаемый посетитель!
Чтобы распечатать файл, скачайте его (в формате Word).
Ссылка на скачивание - внизу страницы.