首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C++ >

类模板中的&符号有关问题

2013-10-12 
类模板中的&符号问题部分代码如下template class Tclass Store {private:T itembool haveValuepublic:

类模板中的&符号问题
部分代码如下


template <class T>
class Store 
{
private:
T item;
bool haveValue;
public:
Store ();
/*T &getElem ();*/
void putElem (const T &x);
};
template <class T>
Store<T>::Store ():haveValue (false)
{
}
template <class T>
/*T &Store<T>::getElem ()*/
{
if (!haveValue)
{
cout<<"No item present!"<<endl;
exit (1);
}
/*return item;*/
}
template <class T>
void Store<T>::putElem (const T &x)
{
haveValue = true;
item = x;
}

代码中注释部分出现的&符号是什么意思? 
看起来像是说getElem函数返回值为 T类型参数 的指针类型,但在其函数体中写的返回值是 T类型参数 的变量
后来去掉注释语句中的&符号编译程序,也不报错,结果也一样
求大神指教

[解决办法]
返回值为 T类型参数 的引用类型
返回值类型开销比较大,特别是对于比较大的struct/class类型
[解决办法]
你先搞清楚引用,再搞模板。

热点排行