"Effective C + +"Clause 20: Prefer to replace pass-by-value with Pass-by-reference-to-constBy default, C + + passes an object to a function by value. Unless you know otherwise, the function parameter is the initial value of the copy of the actual
This is a much-discussed topic in the Java field. However, so far I have found that many people have not figured it out (including myself, of course ). Until I read this articleArticle"Does Java pass by reference or pass by value? .
From this, I
Key points of this article:1, try to replace Pass-by-value with Pass-by-reference-to-const. The former is more efficient and can avoid cutting problems.2. This rule does not apply to both the built-in type and the iterator and function object types
Effective C + + ' ning to pass-by-reference-to-const replace Pass-by-value 'By default, C + + passes an object to a function by value (a way that inherits from C). Unless you specify otherwise, the function parameter is the initial value of the
clause 20: Prefer to replace pass-by-value with Pass-by-reference-to-const
By default, C + + passes objects to (or from) functions in by value, a way that inherits from C. Unless you specify otherwise, the function arguments are based on the actual
Effective C + + ' ning to pass-by-reference-to-const replace Pass-by-value 'By default, C + + passes an object to a function by value (a way that inherits from C). Unless you specify otherwise, the function parameter is the initial value of the
Key points:
Try to replace pass-by-reference-to-const with pass-by-value. This is usually more efficient and avoids the problem of object cutting when the subclass object is copied to the base class.
Pass-by-value should be used for the internal
(1)
If the pass-by-value parameter is passed when a function is called, the function parameters take the actual copy of the real parameter as the initial value, and the call end obtains a replica of the function return value.
See the following code:
By default, C ++ uses the by Value Method to pass objects to functions. The real parameters of a function are all based on the response of the actual parameter as the initial value, and the call end obtains a replica of the function return value.
Does JS pass by value or by reference?Recently I encountered an interesting question: "Is the value in JS passed by value or by reference ?" Before analyzing this problem, we need to know what is call by value and call by reference ). In computer
Preface:We've all used the value-passing method of C, so how does the value transfer work in C + + cases?Like what:int foo (int x); int I;foo (i);1. Get a copy of I within the program2. Passing a copy to the Foo function3.foo backThese replicas are
Remember:
Replace Pass-by-value with Pass-by-reference-to-const as much as possible. The former is usually more efficient and avoids cutting problems (slicing problem).
The above rules do not apply to built-in types, as well as STL
By default, C ++ uses the by Value Method to pass the object (or from) function. The function parameter is the initial value of the copy of the real parameter, and the result obtained by the function is also a copy of the function return value.
Replace Pass-by-value with Pass-by-reference-to-const as much as possible. The former is usually more efficient because it avoids the call to copy constructors and destructors, and avoids cutting problems.is a good example of slicing problems:
To solve the terminology problem first, the best fit for "pass by value" appears to be the argument. "Pass by value" and what it means depends on how you understand how the program works. The most common meaning is to get a local copy of anything to
Note that in the case of C + +, the underlying compiler, the reference type is often implemented by pointers, so pass-by-reference is often passed a pointer, which is often a bit more expensive to pass a reference for C + + built-in types. But this
The day before yesterday when the system was in the Java parameter Transfer problem card, looking back to the relevant information, the parameter transfer problem has a new understanding and mastery, but there is a problem is still very vague, is
Passing by value copies a variable within the function without changing the value of the external parameter. Pass-through, you need to write the Var identifier on the parameter, which changes the value of the externally passed-in parameter. Such as:
Read a post on the internet to explain the value of Java and pass by reference, feel quite comprehensive, turn around, for later study reference:1: What is passed by valueRefers to when a method call passes a parameter that is passed by a copy of
The content source of this page is from Internet, which doesn't represent Alibaba Cloud's opinion;
products and services mentioned on that page don't have any relationship with Alibaba Cloud. If the
content of the page makes you feel confusing, please write us an email, we will handle the problem
within 5 days after receiving your email.
If you find any instances of plagiarism from the community, please send an email to:
info-contact@alibabacloud.com
and provide relevant evidence. A staff member will contact you within 5 working days.