C++模板与异常处理详解
1. 函数模板输出运算符
为 BinaryTree 类模板提供输出运算符时,若为非模板类,可按如下方式编写:
ostream& operator<<(ostream&, const int_BinaryTree&);
对于类模板,若为每个生成的类定义提供显式实例,会十分繁琐且永无止境。更好的解决方案是将输出运算符定义为函数模板:
template <typename elemType>
inline ostream&
operator<<(ostream &os, const BinaryTree<elemType> &bt)
{
os << "Tree: " << endl;
bt.print(os);
return os;
}
当执行以下代码时:
BinaryTree< string > bts;
cout << bts << endl;
会生成支持 BinaryTree<string> 作为第二个参数的输出运算符实例。同理,对于 BinaryTree<int> 也
超级会员免费看
订阅专栏 解锁全文
11万+

被折叠的 条评论
为什么被折叠?



