重载函数
在c++中,有一个重载函数中的地方看不懂,请大牛们解释一下。
int operator==(Piont& p)
这个&是啥意思?
还有就是,return是不是必须要一个返回值?
template<class T>
void BiTree<T>::PreOrder(BiNode<T> *root)
{
if(root==NULL) return;
else{
cout<<root->data<<" ";
PreOrder(root->lchild);
PreOrder(root->rchild);
}
}
这个代码里面return就没有返回值,这个该怎么解释?
template<class T>
BiNode<T>* BiTree<T>::Getroot( )
{
return root;
}
这个代码里面第二行的BiNode<T>*,那个*号是啥意思?难道说这是一个指针函数?如果是,我记到好像指针函数不是这样定义的啊!跪求解释啊。
[解决办法]
& 引用.
void 不用返回. 其他类型则要.
* 代表指针 BiNode<T> 指针.
[解决办法]
int operator==(Piont& p)
这里面的& 是引用,就是需要一个Point类型的对象。
如果你的方法没有返回值,但是程序遇到问题的时候需要退出,那么你可以是用return;如果方法有返回值:那么你要返回方法的类型返回值, 对于void 类型的直接return ;就可以了。
最后的那个是自定义模板,他有个返回值是: BiTree<T>*,意思就是说该模板函数返回的是这种类型的指针。
不知道楼主理解没有啊。呵呵。
[解决办法]
&为引用,void不需要返回值,除了void类型外都需要返回值
BiNode<T>*,那个*号,表示的这个函数返回值的类型为BiNode<T>的指针类型
[解决办法]