-Поиск по дневнику

Поиск сообщений в rss_forum_sources_ru

 -Подписка по e-mail

 

 -Постоянные читатели

 -Статистика

Статистика LiveInternet.ru: показано количество хитов и посетителей
Создан: 29.07.2007
Записей:
Комментариев:
Написано: 80


обнуление статического вектора члена класса

Воскресенье, 29 Августа 2021 г. 21:32 + в цитатник
rodion: Есть класс типа фабрика. При регистрации классов всё нормально, а вот при создании вектор m_Patern оказывается пустым, при этом поле m_GenId сохраняет своё значение. Не подскажите в чём дело? Стандарт 2003.
    class TInitTSourcesFunctor
    {
    public:
    TInitTSourcesFunctor()
    {
    TCreatorTran >::Registration(
    new TBaseTransformationPatern >);
    }
    };
    static TInitTSourcesFunctor init;


    template
    class TCreatorTran
    {
    public:
    const TTypeDataOut Type;
    public:
    TCreatorTran():
    Type(TType)
    {
    m_GenId += 0;
    }
    static unsigned GenId()
    {
    return ++m_GenId;
    }
    static void Registration(TBaseTransformation* a_T)
    {
    a_T->setId(GenId());
    m_Patern.push_back(a_T);
    }
    static TBaseTransformation* Create(unsigned a_Id)
    {
    std::vector::iterator it = m_Patern.begin();
    for (; it != m_Patern.end(); ++it)
    {
    if ((*it)->Id() == a_Id)
    return (*it)->Create();
    }
    return NULL;
    }
    static std::string ChildName(unsigned a_Id)
    {
    std::string str;
    std::vector::iterator it = m_Patern.begin();
    for (; it != m_Patern.end(); ++it)
    {
    if ((*it)->Id() == a_Id)
    return (*it)->Name();
    }
    return str;
    }
    static unsigned MaxId()
    {
    return m_GenId;
    }
    private:
    TCreatorTran(const TCreatorTran &a_V);
    TCreatorTran& operator = (const TCreatorTran &a_V);
    private:
    static unsigned m_GenId;
    static std::vector m_Patern;
    };

https://forum.sources.ru/index.php?showtopic=422685&view=findpost&p=3851394

Метки:  

 

Добавить комментарий:
Текст комментария: смайлики

Проверка орфографии: (найти ошибки)

Прикрепить картинку:

 Переводить URL в ссылку
 Подписаться на комментарии
 Подписать картинку