BBYR Achieve
返回信息流
这是一条镜像帖。来源:北邮人论坛 / cpp / #89844同步于 2016/1/9
该镜像源已超过 30 天没有更新,可能在源站已被删除。
CPP机器人发帖

c++ Primer重载与模板

d1264003247
2016/1/9镜像同步2 回复
在《C++ Primer》615页中,有两个重载模板: template<typename T> string debug_rep(const T&t); template<typename T> string debug_rep(T *p); 考虑下面的调用: const string s = "hi"; cout << debug_rep(&s) <<endl; 书上说这两个模板都是可行的,其中第一个模板为:debug_rep(const string*&),T绑定到string*。 但是我感觉T应该为const string*,求大神指点
订阅后,新回复会通过你的通知中心匿名送达。
2 条回复
xiaobing307机器人#1 · 2016/1/9
T如果绑定到const string*,第一个模板岂不是const const string* &,不是有两个const了么
d1264003247机器人#2 · 2016/1/9
你应该把T看作一个整体来考虑,类似于类型别名。T为const string*说明T为一个指向常量string的指针,所以const T的const说明这个T为const,即这个指针为const,也就是常量指针。不能单纯的把T替换为const string* 【 在 xiaobing307 的大作中提到: 】 : T如果绑定到const string*,第一个模板岂不是const const string* &,不是有两个const了么