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

Как сделать шаблон, с параметром-классом - потомком определённого класса? - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Вывести на экран дату следующего дня http://www.cyberforum.ru/cpp-beginners/thread430532.html
ребят помогите пожалуйста с кодом, Ввести дату в формате ДД,ММ,ГГГГ.Вывести на экран дату следующего дня заранее спасибо.с языком си туго очень
C++ Eclipse: Symbol 'cout' could not be resolved Поставил себе Эклипс для общего развития, так сказать, но не могу разобраться, чего он хочет от меня. такой код: #include <iostream> using namespace std; int main() { cout << "Hello World" << endl; return 0; } http://www.cyberforum.ru/cpp-beginners/thread430531.html
C++ Сформировать новый массив из двух исходных по данному правилу
Даны два одномерных массива A и B размерности 12. Вычислить массив C, если известно, что первый элемент этого массива равен сумме первого элемента массива A и последнего элемента массива B, второй элемент массива C равен сумме второго элемента массива A и предпоследнего элемента массива B и т.д. Вывести на экран первый и последний элементы массива C.
не могу понять,почему не идет C++
#include "stdafx.h" #include <iostream> #include <stdio.h> #include <math.h> struct crs Matrix { int N; int Nz; double*value;
C++ Сортировка списка по убыванию http://www.cyberforum.ru/cpp-beginners/thread430497.html
Не работает ListNode<NODETYPE> *currentPtr=firstPtr, *current1Ptr=firstPtr, *XPtr=0; while(currentPtr->nextPtr!=0) { while(current1Ptr->nextPtr!=0) { if (current1Ptr->data>current1Ptr->nextPtr->data) {
C++ Определить сумму элементов матрицы, расположенных на главной диагонали Ввести статическую матрицу размером 4x4. Определить сумму элементов матрицы, расположенных на главной диагонали матрицы и произведение элементов, расположенных на побочной диагонали матрицы. Пока только это написала: #include <iostream> using namespace std; int main() { подробнее

Показать сообщение отдельно
DU
1481 / 1057 / 45
Регистрация: 05.12.2011
Сообщений: 2,279
19.01.2012, 21:06     Как сделать шаблон, с параметром-классом - потомком определённого класса?
Есть еще альтернативный вариант написания такого хелпера. Раз у вас к хелперу такое требование, значит он вроде как расчитан на работу с интерфейсом IService, а не с конкретным
его имплементом. Это можно реализовать хранением смарт поинтера на IService внутри такого хелпера. Указатели на IService передаются хелперу извне при его создании (что есть хорошо, ибо отделяется место создания сервисов от места использования, меньшая связность компонент, уходит требование наличия у конкретного сервиса дефолтного конструктора) или же за счет вызова темплейтного конструктора. Сам хелпер при этом перестает быть шаблоном (что тоже хорошо. имплемент можно будет спрятать в спп файл последующие изменения в хелпере не будут влиять на другие файлы проекта). Требование о том, что передаваемый хелперу объект выполнится либо за счет строчки m_service(new Service()) (тупо не скомпилится, возможно с менее очевидным описанием ошибки компиляции, чем при статик ассертах), либо это декларится более явно в нешалбонном конструкторе хелпера.

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
class IService
{
public:
  virtual IService() {};
  // other methods
};
 
class ServiceHelper
{
public:
  template <class Service>
  ServiceHelper()
    : m_service(new Service())
  {
  }
 
  ServiceHelper(SmartPtr<IService> service)
    : m_service(service)
  {
  }
 
  // help methods
 
private:
  SmartPtr<IService> m_service;
};
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru