c++ fatal error LNK1120: 4 个无法解析的外部命令

来源:百度知道 编辑:UC知道 时间:2024/05/30 23:30:03
正在学习C++ ING~~~ 谢谢大家解疑!
代码:
模版模块
template<class T>
class Array
{
public:
Array(int itsSize= DefaultSize);
Array(const Array &rhs);
~Array() {delete [] pType;}

Array& operator=(const Array&);
T& operator[](int offSet) {return pType[offSet];}
const T& operator[](int offSet) const
{return pType[offSet];}
int GetSize() const {return itsSize;}
friend ostream& operator<< (ostream&,const Array<T>&);

private:
T *pType;
int itsSize;
};

template <class T>
ostream& operator<< (ostream& output,const Array<T>& thrArray)
{
for (int i = 0; i < theArray.GetSize();i++)
output << "[" << i << "] " << theArray[i] << endl;
return output;
}

template <class T>
Array<T>::Array(int size):itsSize(size)
{
pType = new T[size];<

输出 运算符 重载 出错··
是否需要声明Ostream 为模板类的友元?

头文件暴露问题或者VC环境没包含相应的头文件和库文件

可能是作用域的问题,虽然有些函数等你可能在别的地方定义了,但是仍然需要声明,特别是两个cpp文件可能出现这种问题。

你有很多函数没有定义,却使用到了。你的代码没有给全,没办法给你指出错误。