关于std::string作参数的问题

wwq100 2011-09-20 04:21:35
func(const char * p_str)
{
}
func(const std::string & str)
{
}
C++程序一般用那个好?
第二种 传入NULL会运行时死机。(NULL在程序中定义为:0),原来一直习惯用第二种。
...全文
445 15 打赏 收藏 转发到动态 举报
写回复
用AI写文章
15 条回复
切换为时间正序
请发表友善的回复…
发表回复
wwq100 2011-09-21
  • 打赏
  • 举报
回复
[Quote=引用 6 楼 bokutake 的回复:]

像CString或者std::string都可以用来做返回值,但是尽量避免用来作为参数,可能存在浅拷贝的问题,所以如果作为传入参数,请使用C风格字符串,微软的MSDN里也是这么建议的。
[/Quote]
msdn在那里有这个建议,我怎么搜不到?
wwq100 2011-09-21
  • 打赏
  • 举报
回复
[Quote=引用 13 楼 bokutake 的回复:]

第二种传一个_T("")不行么,非要NULL
[/Quote]
很多人在一起干活,防不胜防
辰岡墨竹 2011-09-20
  • 打赏
  • 举报
回复
第二种传一个_T("")不行么,非要NULL
wwq100 2011-09-20
  • 打赏
  • 举报
回复
const char * p_str = NULL;
把 p_str传进去, 能编过,运行期出错
Qlaiaqu 2011-09-20
  • 打赏
  • 举报
回复
string是类,NULL是啥?你编译能过吗?
pathuang68 2011-09-20
  • 打赏
  • 举报
回复
这是个好问题!
wwq100 2011-09-20
  • 打赏
  • 举报
回复
MSDN那里有建议,我想看一下?
苍蝇①号 2011-09-20
  • 打赏
  • 举报
回复
杯具!!!这是代码不严谨的问题
wwq100 2011-09-20
  • 打赏
  • 举报
回复
他那边是一个const char * ,只是在某些情况下出现传入NULL的情况
辰岡墨竹 2011-09-20
  • 打赏
  • 举报
回复
像CString或者std::string都可以用来做返回值,但是尽量避免用来作为参数,可能存在浅拷贝的问题,所以如果作为传入参数,请使用C风格字符串,微软的MSDN里也是这么建议的。
wy2001wy 2011-09-20
  • 打赏
  • 举报
回复
看到这样的接口,然后还传个NULL,那肯定是调用的人有问题嘛
wwq100 2011-09-20
  • 打赏
  • 举报
回复
但别人会调你的接口,今天就遇到一个这样的死机
txdgtwpv 2011-09-20
  • 打赏
  • 举报
回复
给NULL取地址??
turing-complete 2011-09-20
  • 打赏
  • 举报
回复
其实用指针和引用,完全是出于习惯和公司的规范,因为二者的实现都是一样的。
羽飞 2011-09-20
  • 打赏
  • 举报
回复
这确实是个让人郁闷的问题
我也一直用第二种
但是没有传过NULL

64,677

社区成员

发帖
与我相关
我的任务
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++ 技术论坛(原bbs)
社区管理员
  • C++ 语言社区
  • encoderlee
  • paschen
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
  1. 请不要发布与C++技术无关的贴子
  2. 请不要发布与技术无关的招聘、广告的帖子
  3. 请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下

试试用AI创作助手写篇文章吧