泛型编程友元函数编译器报错
在实现模板类的时候, 在类的内部声明一个友元friend 函数时,请一定加上类模板声明template
template <typename T>
friend ostream& operator<<(ostream& os, const Vector<T> object);
这样可以避免C++编译器报错,同样在友元函数的实现时也要加上此声明.
可以避免如下报错 :
error LNK2019: 无法解析的外部符号 “class std::basic_ostream<char,struct std::char_traits > & __cdecl operator<<(class std::basic_ostream<char,struct std::char_traits > &,class Vector)” (??6@YAAAV?
b
a
s
i
c
o
s
t
r
e
a
m
@
D
U
?
basic_ostream@DU?
basicostream@DU?char_traits@D@std@@@std@@AAV01@V?$Vector@H@@@Z),该符号在函数 _main 中被引用
fatal error LNK1120: 1 个无法解析的外部命令