Модераторы: bsa
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Создать класс типа сигнал, как шаблон 
:(
    Опции темы
Kioko
Дата 3.3.2015, 18:09 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 4
Регистрация: 24.12.2014

Репутация: нет
Всего: нет



Помогите пожалуйста. Абсолютно  не понятно, каким образом реализовать задание:
Создать класс типа сигнал, как шаблон, чтобы на его основе реализовать и двухбайтовые данные, собранные с платы сбора данных, так и данные типа float, смоделированные программно. С сигналом определить конструктор по умолчанию, конструктор с параметром, конструктор копирования, деструктор. Переопределить операторы присваивания, [], +=, -=, +, -, *, сохранения в файле.
PM MAIL   Вверх
baldina
Дата 4.3.2015, 10:37 (ссылка) |    (голосов:1) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 3433
Регистрация: 5.12.2007
Где: Москва

Репутация: 15
Всего: 101



так понятно?
Код

/* как шаблон */ template <typename T> /* Создать класс */ class /* типа сигнал */ Signal {
  T value_;
 public:
 // определить конструктор по умолчанию
 Signal () : value_(T()){}
// конструктор с параметром
 Signal (const T& v) : value_(v){}
// конструктор копирования
 Signal (const Signal& s) : value_(s.value_){}
// деструктор
 virtual ~Signal (){}
// Переопределить операторы присваивания, [], +=, -=, +, -, *, сохранения в файле.
Signal& operator=(const Signal& s) { value_=s.value; return *this; }
Signal& operator+=(const Signal& s) { value_+=s.value; return *this; }
Signal& operator-=(const Signal& s) { value_-=s.value; return *this; }
Signal& operator*=(const Signal& s) { value_*=s.value; return *this; }
friend std::ostream& operator<<(std::ostream& os, const Signal& s) {
  return os << s.value_;
}
};

template <typename T>
Signal<T> operator+(const Signal<T>& lhs, const Signal<T>& rhs) {  return Signal<T> (lhs) += rhs; }
template <typename T>
Signal<T> operator-(const Signal<T>& lhs, const Signal<T>& rhs) {  return Signal<T> (lhs) -= rhs; }
template <typename T>
Signal<T> operator*(const Signal<T>& lhs, const Signal<T>& rhs) {  return Signal<T> (lhs) *= rhs; }

// чтобы на его основе реализовать и двухбайтовые данные, собранные с платы сбора данных, так и данные типа float
typedef Signal<int16_t> Signal16;
typedef Signal<float> Signalf;

PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "C/C++: Для новичков"
JackYF
bsa

Запрещается!

1. Публиковать ссылки на вскрытые компоненты

2. Обсуждать взлом компонентов и делиться вскрытыми компонентами

  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Вопросы по реализации алгоритмов рассматриваются здесь


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, JackYF, bsa.

 
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | C/C++: Для новичков | Следующая тема »


 




[ Время генерации скрипта: 0.0612 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.