c++中各种形参的使用场景
根据《C++ Primer Plus》的指导原则:
传值、传地址和传引用根据是否需要在函数中修改实参分为:
如果不需要在函数中修改实参
- 如果实参很小,如C++内置的数据类型或小型结构体,则按值传递。
- 如果实参是数组,则使用const指针,因为这是唯一的选择(没有为数组建立引用的说法)。
- 如果实参是较大的结构,则使用const指针或const引用。
- 如果实参是类,则使用const引用,传递类的标准方式是按引用传递(类设计的语义经常要求使用引用)。
形参都加const约束
如果需要在函数中修改实参
- 如果实参是内置数据类型,则使用指针。只要看到func(&x)的调用,表示函数将修改x。
- 如果实参是数组,则只能使用指针。
- 如果实参是结构体,则使用指针或引用。
- 如果实参是类,则使用引用。
实参是数组:形参使用指针接收
实参是类:形参使用引用接收
实参是结构体:形参指针或引用都可接收
形参都不能加const约束