Introducción a Patrones de Diseño en C++ con Qt4/1.18 Variables de referencia

Pronto observamos que un objeto (en el sentido más general) es una región contigua de almacenamiento. Un lvalue (left value, valor que va a la izquierda en una asignación) es una expresión que se refiere a un objeto. Ejemplos de lvalue son variables, celdas de arrays y punteros derreferenciados. En esencia, un lvalue es cualquier cosa con una dirección de memoria a la que se le pueda dar un nombre. En contraste, expresiones temporales o constantes tales como i+1 ó 3 no son lvalues.

En C++, una referencia provee un mecanismo para asignar un nombre alternativo a un lvalue. Las referencias son especialmente útiles para evitar hacer copias cuando copiar es muy costoso o innecesario, por ejemplo, cuando se pasa un objeto muy grande como parámetro de una función. Una referencia debe de ser inicializada cuando se declara, y el inicializador debe de ser un lvalue.