标准库中指针可以用应用的方式传参,为什么自定义的就不行?

xiongyu2006 xiongyu2006 墨衍会员 · AI 创作全网分发 墨衍智能分发 通过墨衍一键同步至各平台 可同步平台 CSDN微信公众号微博知乎掘金百家号博客园抖音小红书 你的文章也可以这样分发 墨衍会员 ¥399起/年,写一次发全网 我也要 + 加入社区
标准库中swap有这样的定义

template<class _Ty> inline
void swap(_Ty& _Left, _Ty& _Right)
{ // exchange values stored at _Left and _Right
if (&_Left != &_Right)
{ // different, worth swapping
_Ty _Tmp = _Left;

_Left = _Right;
_Right = _Tmp;
}
}


_Ty是个 typedef void _Ty,这_Ty还有其他什么含义吗? 仅仅是个void?
这样写为什么不行?

template<class T>
void swap2(T& _Left, T& _Right)
{ // exchange values stored at _Left and _Right
if (&_Left != &_Right)
{ // different, worth swapping
T _Tmp = _Left;

_Left = _Right;
_Right = _Tmp;
}
}
int main()
{
int a=10,b=20;
int *p=&a,*q=&b;
swap2(p,q);
cout<<a<<"\t"<<b<<endl;
return 0;
}

...全文

相关推荐

评论 9
收藏 已收藏
分享
返回顶部
xiongyu2006
C++ 语言 65,214 成员 250,514 内容