《高质量C++编程指南》第6章~函数设计--【优秀的编程思想】

举报
王博Kings 发表于 2020/12/29 23:11:51 2020/12/29
【摘要】 函数接口的两个要素是参数与返回值 C语言中,函数的参数和返回值的传递方式有:值传递和指针传递 C++语言中,多了引用传递 如果对引用和指针不理解,请先复习这篇博客: 《高质量C++编程指南》番外篇--引用与指针的比较?为什么要使用引用? 6.1 参数的规则 6.1.1 参数书写要完整 void SetValue(int width, int height)...

函数接口的两个要素是参数与返回值

C语言中,函数的参数和返回值的传递方式有:值传递和指针传递

C++语言中,多了引用传递

如果对引用和指针不理解,请先复习这篇博客:

《高质量C++编程指南》番外篇--引用与指针的比较?为什么要使用引用?

6.1 参数的规则

6.1.1 参数书写要完整

void SetValue(int width, int height);  //良好的风格,要写出来传进来的是什么

float GetValue(void);   //良好的风格,空了就加void

6.1.2 参数命名要恰当,顺序要合理

参数起名字要合理,比如void StringCopy(char *str1, char *str2);

这里并不清楚哪个是源,哪个是结果。命名为void StringCopy(char *strSource, char *strDestination)

还要注意的是:

程序员习惯将目的参数放前面,源参数放后面,所以上面的改为:void StringCopy(char *strDestination, char *strSource)

6.1.3 如果参数是指针且仅作为输入,应加const,以防止被以外修改

void StringCopy(char *strDestination, const  char *strSource)

6.1.4 输入以值传递,宜改用“const &”方式传递,省去构造析构,提高效率

其他建议:

参数个数尽量控制在5个以内

尽量不要使用类型和数目不确定的参数

6.2 返回值的规则

6.2.1 不要省略返回值的类型

C++语言有很严格的类型安全检查,规定任何C++函数必须有类型,如果函数没有返回值,那么应声明void类型 

6.2.2 函数名字与返回值类型在语义上不可冲突

如:getchar(void)

这个原型是int getchar(void);   很多人使用时char c;  c = getchar();

这就导致了问题

6.2.3 不要讲正常值和错误标志混在一起返回:正常值用输出参数,错误标志用return返回

其他建议:

1.有时函数原本不需要返回值,但为了增加灵活性和支持链式表达,可以附加返回值,比如拷贝函数

void StringCopy(char *strDestination, const  char *strSource)

2.如果函数的返回值是一个对象,有些场合用“引用传递”替换“值传递”可以提高效率,而有些场合只能用“值传递 ”不能用“引用传递”,否则会出错

文章来源: kings.blog.csdn.net,作者:人工智能博士,版权归原作者所有,如需转载,请联系作者。

原文链接:kings.blog.csdn.net/article/details/90271082

【版权声明】本文为华为云社区用户转载文章,如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。