C++编程规范之25:正确选择通过值、(智能)指针、或者引用传递参数

摘要:

    正确选择参数:分清输入参数、输出参数,分清值参数和引用参数。正确地传递参数。

    正确选择参数是通过值、通过引用还是通过指针传递,是一种能够最大程度提高安全性和效率的好习惯。

    选择如何传递参数时,应该遵循一下准则。对于只输入参数:

    1.始终用const限制所有指向只输入参数的指针和应用。

    2.优先通过值来取得原始类型(如char、float)和复制开学比较低的值对象(如point、complex<float>)的输入。

    3.优先按const的引用取得其他用户定义类型的输入;

    4.如果函数需要其参数的副本,则可以通过值传递代替

    对于输出参数或者输入/输出参数:

    1.如果参数是可选的(这样调用者可以传递null表示“不适用的”或“无需关心的”值),或者函数需要保存这个指针的副本或者操控参数的所有权,那么应该优先通过(智能)指针传递;

    2.如果参数是必须的,而且函数无需保存指向参数的指针,或者无需操控其所有权,那么应该优先通过引用传递。这表明参数是必须的,而且调用者必须提供有效对象。

时间: 2024-09-20 11:36:26

C++编程规范之25:正确选择通过值、(智能)指针、或者引用传递参数的相关文章

如何正确选择语言编程?

问题描述 如何正确选择语言编程? 像百度魔拍之类的.可以输入照片然后数据库反出结果的,要用什么语言编的程序啊? 解决方案 这个什么语言都支持查询数据库,C++, Java, C#

C#编程规范和惯例

编程|规范 谁都会写代码!几个月的编程经验可以让你写出"可运行应用程序".让它可运行容易,但是以最有效率的方式编码就需要下更多的功夫! 要知道,大多数程序员在写"可运行代码,"而不是"高效代码".我们在这个指南课程前面提到,你想成为你们公司"最尊贵的专业人员"吗?写"高效代码"是一项艺术,你必须学习和实践它. 命名惯例和规范 注记 : Pascal 大小写形式-所有单词第一个字母大写,其他字母小写.Came

JAVA 编程规范

编程|规范 1. 应用范围 本规范应用于采用J2EE规范的项目中,所有项目中的JAVA代码(含JSP,SERVLET,JAVABEAN,EJB)均应遵守这个规范.同时,也可作为其它项目的参考. 2. 设计类和方法 2.1 创建具有很强内聚力的类 方法的重要性往往比类的重要性更容易理解,方法是指执行一个统一函数的一段代码.类常被错误的视为是一个仅仅用于存放方法的容器.有些开发人员甚至把这种思路作了进一步的发挥,将他们的所有方法放入单个类之中. 之所以不能正确的认识类的功能,原因之一是类的实现实际上

IDesign C#编程规范(一)

编程|规范 IDesign发布了C#编程规范,小鸡射手从Only4Gurus下载浏览后决心抽时间翻译一下,以更好地学习. 目录内容如下: 1 命名规则和风格 Naming Conventions and Style 2 编码惯例 Coding Practices 3 项目设置和结构 Project Settings and Structure 4 Framework特别指导 Framework Specific Guidelines 4.1 数据访问 Data Access 4.2 ASP.NE

《C++编程规范:101条规则、准则与最佳实践》——第2章设计风格设计风格 C++编程规范:101条规则、准则与最佳实践 复杂性啊,愚人对你视而不见,实干家受你所累。 有些人避而远之。惟智者能够善加消除。 ——Alan Perlis 我知道,但是却又忘记了Hoare的至理名言:不成熟的优化是程

第2章设计风格 C++编程规范:101条规则.准则与最佳实践 复杂性啊,愚人对你视而不见,实干家受你所累. 有些人避而远之.惟智者能够善加消除. --Alan Perlis 我知道,但是却又忘记了Hoare的至理名言:不成熟的优化是程序设计中的万恶之源. --Donald Knuth[1] The Errors of TeX[Knuth89] 完全区分设计风格与编码风格是非常困难的.我们将一般在实际编写代码时才用得到的条款留到下一部分介绍. 本部分集中讨论适用面比一个特定的类或者函数更广的原则和

《C++编程规范:101条规则、准则与最佳实践》——导读

前言 C++编程规范:101条规则.准则与最佳实践尽早进入正轨:以同样的方式实施同样的过程.不断积累惯用法.将其标准化.如此,你与莎士比亚之间的唯一区别将只是掌握惯用法的多少,而非词汇的多少. --Alan Perlis[1]} 标准最大的优点在于,它提供了如此多样的选择. --出处尚无定论 我们之所以编写本书,作为各开发团队编程规范的基础,有下面两个主要原因. 编程规范应该反映业界最久经考验的经验.它应该包含凝聚了经验和对语言的深刻理解的公认的惯用法.具体而言,编程规范应该牢固地建立在大量丰富

实现高效Java编程规范的十一条基础规则

编程|规范 本文介绍的Java规则的说明分为5个级别,级别1是最基本也是最重要的级别,在今后将陆续写出其他的规则.遵守了这些规则可以提高程序的效率.使代码有更好的可读性等. (1) 避免使用NEW关键字来创建String对象 把一个String常量copy到String 对象中通常是多余.浪费时间的. Public class test{ Public void method(){ System.out.print (str); } private String str = new String

IDesign C#编程规范(二)

编程|规范 续之一,小鸡射手接着翻译了IDesign编码规范的第二章前部. 2 编码惯例 Coding Practices 1. 避免在一个文件中放多个类. Avoid putting multiple classes in a single file. 2. 一个文件应该只对一个命名空间提供类型.避免在同一文件中有多个命名空间. A single file should only contribute types to a single namespace. Avoid having mult

IOS团队编程规范

本文讲的是IOS团队编程规范,需求是暂时的,只有变化才是永恒的,面向变化编程,而不是面向需求编程. 不要过分追求技巧,降低程序的可读性. 简洁的代码可以让bug无处藏身.要写出明显没有bug的代码,而不是没有明显bug的代码. 先把眼前的问题解决掉,解决好,再考虑将来的扩展问题. 一.命名规范 1.统一要求 含义清楚,尽量做到不需要注释也能了解其作用,若做不到,就加注释,使用全称,不使用缩写. 2.类名 大驼峰式命名:每个单词的首字母都采用大写字母 ==例:== MFHomePageViewCo