重载函数解决办法
重载函数
在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>的指针类型
------解决方案--------------------
还有个特殊的函数,即main函数是可以不写return 语句的,若没有写编译器会自动在你main函数结束前加上return 0;
------解决方案--------------------
& 是引用,意思是不是传值,而是“传址”
第一个中,return最好返回左或右边类的引用。是为了保持==的连续性,即可以a==b==c。
第二个中,没有返回值,是因为是void型阿。
下一个 * 则是表示返回一个这个类的指针。
在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>的指针类型
------解决方案--------------------
还有个特殊的函数,即main函数是可以不写return 语句的,若没有写编译器会自动在你main函数结束前加上return 0;
------解决方案--------------------
& 是引用,意思是不是传值,而是“传址”
第一个中,return最好返回左或右边类的引用。是为了保持==的连续性,即可以a==b==c。
第二个中,没有返回值,是因为是void型阿。
下一个 * 则是表示返回一个这个类的指针。