C++函数返回值问题 客官请进

来源:百度知道 编辑:UC知道 时间:2024/05/19 23:02:06
在函数声明时看到的
这是一个栈的链式存储结构
template <class TElem>
struct TLinkNode
{
TElem info;
TLinkNode *next;
};//这是结点

template <class TElem>
class TStackLink
{
protected:
........
public:
....//其中的一个函数这么声明
virtual TLinkNode<TElem>* PushNode(TLinkNode<TElem> *pNode);//part1
....
};
part1处TLinkNode<TElem>* PushNode()和TLinkNode<TElem> *PushNode()有什么不一样?类似的假如TLinkNode<TElem>& PushNode()和TLinkNode<TElem> &PushNode()有什么不一样?如果是变量声明呢?
可能我问的不是很清楚 TLinkNode<TElem>* PushNode()和TLinkNode<TElem> *PushNode()TLinkNode<TElem>& PushNode()和TLinkNode<TElem> &PushNode()
就是* 和 &靠向不同边一样吗?语言应该会更严谨点吧 *和&靠向变量是返回指针和引用 那如果靠向前面的类型呢?

*是对于指针变量来说的,定义为*的函数的返回值应该是一个指针
&是地址(引用),可以是任意一个变量的地址。用&定义的函数,返回值可以是某个变量的引用,也可以是不带*的指针变量名。

没区别
同上
同上