社区
C++ 语言
帖子详情
c++ 指针高手赐教(来自 <> )
yuyuancheng
2007-05-02 10:37:56
template <typename T>
inline T* const& max (T* const& a,T* const& b)
{
return *a < *b ? b : a;
}//来自 <<C++ templates>> 第17页
上面模板中的返回类型及参数类型 既有 引用 又有 指针,(T* const& a)
这样做有什么好处?
...全文
359
15
打赏
收藏
c++ 指针高手赐教(来自 <> )
template inline T* const& max (T* const& a,T* const& b) { return *a < *b ? b : a; }//来自 <> 第17页 上面模板中的返回类型及参数类型 既有 引用 又有 指针,(T* const& a) 这样做有什么好处?
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
15 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
Obsidianhom
2007-05-03
打赏
举报
回复
提高效率,用const防止传入参数被修改,指针是传地址,不用复制一份传入参数的副本,而值传送要复制参数副本,所以可以提高效率
0黄瓜0
2007-05-03
打赏
举报
回复
加上那个const的好处:
明确告诉函数的调用者,我这个函数的指针虽然是实参指针的引用,但函数不会修改它的指向,同时会修改它指向的内容,调用者有个明确的逻辑概念.
明确告诉函数的编写者,这个函数在逻辑上不会修改实参指针的指向,同时会修改它指向的内容,如果编写者不小心修改了指针的指向,编译时会报错.
那个const不加也是可以的,函数的功能也不会爱影响.但没有上面两条好处.
返回值加const也是同样的道理.
0黄瓜0
2007-05-02
打赏
举报
回复
T* const& a
表示函数中的指针就是外面的实参,且指向不变,指向的内存内容可变.
believefym
2007-05-02
打赏
举报
回复
上面两个函数调用反了,呵呵
believefym
2007-05-02
打赏
举报
回复
class T
{
public:
int data;
};
void f(T const&t1,T const&t2)
{
//t1 = t2;//illegal
cout<<t1.data<<"\t"<<t2.data;
}
f(&t1,&t2);
-------------------------------
void f(T* const&t1,T* const&t2)
{
//t1 = t2;//illegal
cout<<t1->data<<"\t"<<t2->data;
}
f(t1,t2);
believefym
2007-05-02
打赏
举报
回复
a、b不可变
yuyuancheng
2007-05-02
打赏
举报
回复
那么const后面的引用呢?
monkeywuming
2007-05-02
打赏
举报
回复
T表示类型,而T*当然就是T类型指针~ ~~至于好处当然就是指针的好处
int 定义int结构
int* 可以用来指向各种int的结构
至于const是修饰符,在此处起的作用是:可以防止所修饰的对象不被修改!
jackmtlee
2007-05-02
打赏
举报
回复
防止函数产生副本,影响程序性能,尤其是对象较大,或是有递归函数调用的时候更应该这样做.
logo0775
2007-05-02
打赏
举报
回复
人们吃饭又有什么好处?浪费钱.浪费青春,浪费精力,浪费电,浪费水,浪费.........
晨星
2007-05-02
打赏
举报
回复
其实都差不多,可以有引用到int的引用类型,同样也可以的有引用到指针类型的引用类型。
晨星
2007-05-02
打赏
举报
回复
指针的引用就是指针的引用,为什么一定要问“有什么好处”?
那整数做参数时又有什么好处?为什么有时候人们用整数作参数?
yuyuancheng
2007-05-02
打赏
举报
回复
那样做有什么好处?
珍惜生命远离CPP
2007-05-02
打赏
举报
回复
指针的引用啊
ff5dq4
2007-05-02
打赏
举报
回复
返回一个const的指针变量引用的
高校技术转移办公室人员如何利用知识图谱评估自身科研成果的转化潜力?.docx
科易网基于40亿+科创知识图谱数据库,深度探索AI技术在技术转移、成果转化、技术经纪、知识产权、产业创新、科技招商等垂直领域的多样化应用场景,研究科技创新领域的AI+数智化解决方案,推动科技创新与产业创新智能化发展。
如何利用知识图谱为企业提供高质量的产学研合作建议?.docx
如何利用知识图谱为企业提供高质量的产学研合作建议?
Ternary-Quantization-Packing-Integrity-Auditor-v1.0-原创源码与文档.zip
原创 JavaScript 工程工具资源,包含完整源码、README、MIT License、原创与授权声明、可复现合成示例、3 项自动化测试、离线 HTML/JSON/SVG 报告及 1080×720 真实运行效果图。适合开发者进行本地分析、工程预检和结果复核;运行时零第三方依赖,不包含第三方源码、账号数据或受限素材。
Espressif 物联网开发框架
Espressif物联网开发框架。专为Espressif系统级芯片(SoCs)设计的官方开发框架。
C++ 语言
65,213
社区成员
250,514
社区内容
发帖
与我相关
我的任务
C++ 语言
C++ 语言相关问题讨论,技术干货分享,前沿动态等
复制链接
扫一扫
分享
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++
技术论坛(原bbs)
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
请不要发布与C++技术无关的贴子
请不要发布与技术无关的招聘、广告的帖子
请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下
试试用AI创作助手写篇文章吧
+ 用AI写文章