Задать вопрос
hell0w0rd
@hell0w0rd
Просто разработчик

Как перегрузить функцию внутри шаблона?

template <typename T> class matrix
{
private:
    T **m_container;
    int m_rows;
    int m_columns;
    
    void in(int i, int j)
    {
        cin >> m_container[i][j];
    }
    template <char*> void in(int i, int j)
    {
        m_container[i][j] = new char [100];
        cin.getline(m_container[i][j], 100);
    }


Вот такой кусок кода, думаю ясно что хотелось получить. Если T — char*, то in перегружается, только вот что-то не очень.
  • Вопрос задан
  • 2911 просмотров
Подписаться 2 Оценить Комментировать
Решения вопроса 1
@vScherba
Насколько я понял, Вам нужно специализировать in для matrix<char*>:

template <typename T> class matrix
{
private:
    T **m_container;
    int m_rows;
    int m_columns;
    
    void in(int i, int j)
    {
        cin >> m_container[i][j];
    }
};

template<>
void matrix<char*>::in(int i, int j)
{
    m_container[i][j] = new char [100];
    cin.getline(m_container[i][j], 100);
}][j], 100);
}
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы