Шаблонный класс оператора присваивания класса - PullRequest
0 голосов
/ 11 сентября 2011

У меня есть TemplateArray и класс CharArray.

Как мне сделать так, чтобы оператор присваивания шаблонного массива копировал только из класса chararray, когда шаблонный массив того же типа (I.E. char) или аналогичного типа (I.E. unsigned char) в chararray?

TemplateArray и CharArray функционально одинаковы (за исключением того, что CharArray может обрабатывать строки, заканчивающиеся на NULL).

Например:

template<typename TemplateItem>
TemplateList & TemplateList<TemplateItem>::operator=(const CharArray &ItemCopy)
{
    //How do I only copy when TemplateList is of type char (or similar unsigned char)
    //IE is same/similar to CharArray
    //Both classes are functionally the same, except CharArray is chars only
}

1 Ответ

3 голосов
/ 11 сентября 2011

Похоже, вам нужна специализация TemplateList::operator=:

template<>
TemplateList& TemplateList<char>::operator=(const CharArray &ItemCopy)
{
    // Do the copying here, you don't provide enough
    // information for a practical suggestion
}
...