【发布时间】:2020-06-20 17:34:12
【问题描述】:
我得到了一些二叉搜索树的代码,并负责为其添加一些功能。但首先,我真的很想更好地理解给我的一个函数的参数/函数定义。代码:
void printTree( ostream & out = cout ) const
{
if( isEmpty( ) )
out << "Empty tree" << endl;
else
printTree( root, out );
}
void printTree( BinaryNode *t, ostream & out ) const
{
if( t != nullptr )
{
printTree( t->left, out );
out << t->element << endl;
printTree( t->right, out );
}
}
首先,我不明白为什么函数声明末尾的括号后面有一个const。对我来说没有意义的另一件事是第一个函数声明的参数 ostream & out = cout。为什么参数= 的东西,我从来没有见过这个。我不明白ostream & out 一般指的是什么。不带参数运行printTree() 就可以了。为什么即使没有没有参数的 printTree 的函数声明,它仍然有效?
顺便说一句,这都是用 C++ 编写的。
【问题讨论】:
-
您询问的是每本 C++ 教科书中都涵盖的基本 C++ 基础知识。在您“获得一些二进制搜索树的代码并负责添加一些功能”之前,我想您也会获得足够的材料来教授这些概念?不幸的是,stackoverflow.com 不能替代 C++ 教科书。如果您的教科书对这些语言特征的解释有什么不清楚的地方,请随意引用一段简短的摘录并解释您的问题。您可以在上面找到流行的 C++ 教科书的链接,从中可以找到更多信息。
标签: c++ tree binary-tree binary-search-tree