2011-09-11 53 views
0

我有一个TemplateArray和一个CharArray类。模板类赋值操作符类

如何使模板阵列的赋值运算符只在模板阵列的类型相同(I.E.char)或类似类型(I.E. unsigned char)chararray时从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 
} 
+0

一个代码示例是值得1000个字) –

+0

好。我无法从许多头文件中复制和粘贴,但我会引用函数行。 – SSight3

+0

我认为你只能通过模板专门化来实现“char”。否则,你将不得不通过实现反射或其他类型的机制来找到运行时类型标识的一种方法。 – Arunmu

回答

3

它看起来像你需要的TemplateList::operator=专业化:

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

非常棒!谢谢! – SSight3