13 CPP各种引用形参的使用场景-开发经验

CPP各种引用形参的使用场景-开发经验

传值、传地址和传引用的指导原则>

1)如果不需要在函数中修改实参:

1 如果实参很小,如内置数据类型或小型结构体,则按值传递。

2 如果实参是数组,则使用const指针,因为这是唯一的选择(没有为数组建立引用的说法,自己猜测,因为引用不是真正的别名,是指针,估计是C++标准委员会认为数组的引用不好处理或者没有必要,这个问题不必太较真,数组没有引用就用指针)。

3 如果实参是较大的结构体,则使用const指针或者const 引用,其中引用更方便些。

4 数据实参是类,则使用const引用,传递的标准方式是按引用传递(C++中,类设计的语义经常要求使用引用)。

2)如果需要在函数中修改实参:

1 如果实参是内置数据类型,则使用指针,只要看到func(&x)的调用,表示函数可以修改x。

2 如果实参是数组,则只能使用指针。

3 数据实参是结构体,则使用指针或者引用。

4 数据实参是类,则使用引用。

当然,这只是一些知道原则,很可能有充分的理由做出其它的选择。