标准库中指针可以用应用的方式传参,为什么自定义的就不行?
标准库中swap有这样的定义
_Ty是个 typedef void _Ty,这_Ty还有其他什么含义吗? 仅仅是个void?
这样写为什么不行?
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;
}
...全文
相关推荐
指针应用一_Pointerapplication_源码
可能使用哈希表(C++标准库中的unordered_map)或者数组来存储每个字母的计数,其中指针可以作为键,对应的计数值作为值。4.
C++数组传参实现[代码]
掌握数组的传参技术对于深入学习C++编程非常重要。正确地理解并使用值传递与地址传递,可以提高程序的效率和可维护性。
CS使用Unsafe的方法向DLL传参
- 在实际开发中,考虑是否可以通过其他方式(如使用.NET标准库中的类型)来避免使用非托管代码。
C++指针资料 集合!!
最后,C++标准库提供了一些工具,如`std::unique_ptr`、`std::shared_ptr`和`std::weak_ptr`,它们是智能指针,能自动管理内存,避免了传统指针可能导致的内存问题
C++函数传入数组方式[源码]
但是,正确处理指针类型是一个挑战,需要明确指针的类型,以匹配数组元素的类型。这是因为不同的数据类型拥有不同的内存大小和对齐方式,不正确的指针类型可能会导致类型安全问题和运行时错误。


