By Reference or By Pointer in Method Arguments

来源:互联网 发布:sjf调度算法例题 编辑:程序博客网 时间:2024/06/06 11:32
Why Use Reference/Pointer in Method Argument
  1. To allow you to alter a data object in the calling function
  2. To speed up a program by passing a reference instead of an entire data object
When Should By Reference When Should Be Pointer

No modify the data,

  1. If the data object is small, such as a built-in data type or a small structure, pass it by value.

  2. If the data object is an array, use a pointer because that's your only choice. Make the pointer a pointer to const.

  3. If the data object is a good-sized structure, use a const pointer or a const reference to increase program efficiency. You save the time and space needed to copy a structure or a class design. Make the pointer or reference const.

  4. If the data object is a class object, use a const reference. The semantics of class design often require using a reference, which is the main reason why C++ added this feature. Thus, the standard way to pass class object arguments is by reference.

Does modify the data,

  1. If the data object is a built-in data type, use a pointer.

  2. If the data object is an array, use your only choice, a pointer.

  3. If the data object is a structure, use a reference or a pointer.

  4. If the data object is a class object, use a reference.



原创粉丝点击