【发布时间】:2015-07-23 10:09:59
【问题描述】:
我试图在我的模板类中专门化
hpp
template<class T>
class tablicowy{
public:
T * tablica;
int rozmiar;
public:
tablicowy(T arr[], int n){
{
tablica = arr;
rozmiar = n;
}
};
friend std::ostream& operator<<(std::ostream& out, tablicowy<char>& that );
friend std::ostream& operator<<(std::ostream& out, tablicowy<T>& that ){
out << "( ";
for(int i = 0; i < that.rozmiar; i++){
out << that.tablica[i] << comma;
}
out << ")";
return out;
};
};
cpp
std::ostream& operator<<(std::ostream& out, tablicowy<char>& that ){
out << "'";
for(int i = 0; i < that.rozmiar; i++){
out << that.tablica[i];
}
out << "'";
return out;
};
C++ 给我:
在包含的文件中 /home/pawel/ClionProjects/lista9/obliczenia.cpp:1:0: /home/pawel/ClionProjects/lista9/obliczenia.hpp:在实例化 “类 obliczenia::tablicowy”: /home/pawel/ClionProjects/lista9/obliczenia.cpp:38:28:需要来自 这里/home/pawel/ClionProjects/lista9/obliczenia.hpp:40:30:错误: 重新定义‘std::ostream& obliczenia::operator
我可以做些什么来重载或专门化 char 运算符?
【问题讨论】:
标签: c++ templates operator-keyword friend