Concepto de valor de retorno, referencia a valor y referencia constante en C++

Muhammad Adil 30 enero 2023
  1. Valor devuelto en C++
  2. Referencia al valor en C++
  3. Const Referencia a valor en C++
Concepto de valor de retorno, referencia a valor y referencia constante en C++

Este artículo analiza la devolución de un valor, una referencia a un valor y una referencia const en C++.

Valor devuelto en C++

Cuando devuelve algo por valor, está devolviendo una copia del objeto. Esto impone restricciones a la clase.

En consecuencia, puede ser costoso devolver un objeto por valor para algunos tipos de objetos. Esto también implica que el nuevo objeto es independiente de otros objetos y tiene valor.

Muchos operadores binarios, como +, - y *, probablemente deberían devolver este valor.

Referencia al valor en C++

En C++, una referencia es un objeto que contiene la dirección de otro objeto. Esta referencia al valor ocurre cuando se declara una variable con el tipo “referencia al tipo”.

Una referencia a valor se puede convertir en un valor utilizando el operador &.

Const Referencia a valor en C++

Una variable const se inicializa con un valor. Esto significa que no se puede cambiar más adelante.

Una variable const se puede inicializar con cualquier tipo, incluida otra variable const o una expresión constante. La inicialización generalmente se realiza en la declaración, pero también se puede realizar en el cuerpo de la función, siempre que sea antes del primer uso de la variable.

En resumen, no puede cambiar un objeto con alias. Cuando el objeto a devolver es costoso de copiar y puede garantizar su existencia después de regresar de una función, puede usar esta técnica en lugar de devolver por valor.

Esto es lo que operator= normalmente devuelve para admitir múltiples asignaciones de una forma en que los tipos estándar no lo hacen.

Muhammad Adil avatar Muhammad Adil avatar

Muhammad Adil is a seasoned programmer and writer who has experience in various fields. He has been programming for over 5 years and have always loved the thrill of solving complex problems. He has skilled in PHP, Python, C++, Java, JavaScript, Ruby on Rails, AngularJS, ReactJS, HTML5 and CSS3. He enjoys putting his experience and knowledge into words.

Facebook

Artículo relacionado - C++ Reference