Форум программистов, компьютерный форум CyberForum.ru
Наши страницы

Неявные интерфейсы С++ шаблонов. Сложно о простом - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Как написать браузер под Windows? http://www.cyberforum.ru/cpp/thread1772554.html
Здравствуйте. Подскажите пожалуйста, как можно написать браузер на C++? Можно не с нуля. Может ли это сделать человек, без особой практики C++, но знающий его основы? Требуется написать браузер...
C++ Рекурсивные функции. Разделение эл. массива, пока не останется 1 элемент Вся суть в том что нужно взять массив из 10 элементом и разделить его на пополам (например от 1 до 5 и от 6 до 10) потом левую часть которая (от 1 до 5) снова разделить на 2 части (например, от 1 до... http://www.cyberforum.ru/cpp/thread1771720.html
C++ Не могу скомпилировать сорс с github
Скачал отсюда https://github.com/AmirAfendin/SPM исходник, но скомпилировать его никак не получается. Кто разбирается помогите. P.S. там надо заменить 1 строку, что бы заработала, но разработчик...
Блокировка Sandboxie C++
Привет, как сделать чтобы блокировать запуск Sandboxie?
C++ Mingw и windows.h http://www.cyberforum.ru/cpp/thread1770200.html
Возникла ошибка в том что mingw определяет мою систему без unicode, а windows.h как unicode, и например при обращение к ф-ции GetFileVersionInfo, я получаю ошибку так как он ищет GetFileVersionInfoA,...
C++ Задача с орграфом Добрый день,помогите найти алгоритм к задаче,заранее спасибо!) подробнее

Показать сообщение отдельно
grizlyk
0 / 0 / 0
Регистрация: 28.06.2016
Сообщений: 2

Неявные интерфейсы С++ шаблонов. Сложно о простом - C++

28.06.2016, 23:35. Просмотров 396. Ответов 3
Метки (Все метки)

Неявные интерфейсы С++ шаблонов. Сложно о простом.

Вот заметка в формате PDF о том, как использовать типизацию для параметров шаблонов.

Отдельные утверждения из заметки процитирую, не влезет сюда весь текст:
- Этот пример страдает проблемой дизайна С++ классов, которую в общем и кратко можно описать как "наследование используется не для реализации интерфейса".
- Почему происходит изменение дизайна.
- Неправильное использование template приводит к сильному дублированию кода и данных.
- Для явного задания интерфейса параметров шаблона в С++, можно использовать следующий предлагаемый способ описания
такого интерфейса:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
//Ta_mwe::Tevent compile time interface
template<class Tevent>
class Ia_mwe_event{
public:
        //void m_event();
        typedef
            void
            (Tevent::* f_m_event)
            ();
 
public:
        Ia_mwe_event(){
            f_m_event m_event= &Tevent::m_event;
            }
};
1.
Возможно это не самый лучший способ, но хуже всего, когда изысканием таких способов типизации приходится заниматься во время написания приложения.

Я делал это вне написания приложения, когда оно уже было написано, так что вы можете тоже ознакомиться отдельно, если чувствуете что в программах иногда возникает необходимость в такой типизации.

2.
Да, вместе с кодом решения на "нынешнем С++" предлагается и вариант "модификации С++" для такой типизации (так, для общего развития), вот пример:
C++
1
2
3
4
//mouse wheel up
class Tevent_mw_up
interface: public Ia_mw_event{
public:
Конечно это только черновик такой модификации, но он скрывает все синтаксические нагромождения, которые очень напоминают попытки реализовать на чистом С классы С++.

PS:
Если кто не понял, то если у вас есть способ типизации параметров лучше, значит о нем тут надо написать.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru