天天看点

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

摘要:

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

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

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

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

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

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

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

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

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

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

继续阅读