en c, existen pautas específicas para pasar los parámetros correctamente para optimizar la eficiencia mientras se mantiene la claridad en su código.
[pase por referencia de lvalue: Use esto cuando la función necesita modificar el objeto original aprobado, con cambios visibles en el llamado.
Pase por lvalue reference a const: elija esto cuando la función necesita observar el estado del objeto sin modificarlo o crear una copia.
pase por valor: cuando esto cuando La función no modifica el objeto original y solo necesita observarlo. Se prefiere para los tipos fundamentales donde la copia es rápida.
para rValues, pase por referencia de rValue: esto evita movimientos o copias innecesarias. Use el reenvío perfecto para manejar tanto los lvalues como los rvalues, asegurando un enlace eficiente.
USE Overloads de constructor: Definir sobrecargas para referencias lvalue y referencias de rValue. Esto permite que el compilador seleccione la sobrecarga correcta en función del tipo de parámetro, asegurando que no hay copias o movimientos innecesarios.
Visitemos el ejemplo de la tarjeta de crédito considerando estas pautas:
pase CreditCard por RValue Reference :
Account(std::string number, float amount, CreditCard&& creditCard): number(number) , amount(amount) , creditCard(std::forward(creditCard)) {}
esto garantiza un movimiento de la tarjeta de crédito rValue aprobada como un argumento.
use Overloads de constructor :
Account(std::string number, float amount, const CreditCard& creditCard): number(number) , amount(amount) , creditCard(creditCard) {} Account(std::string number, float amount, CreditCard&& creditCard): number(number) , amount(amount) , creditCard(std::move(creditCard)) {}
Esto permite al compilador seleccionar la sobrecarga correcta, ya sea copiando de un LValue o moviéndose de un rValue.
aplicando estas pautas, puede optimizar el parámetro que pasa en C, manteniendo el código claridad y eficiencia.
Descargo de responsabilidad: Todos los recursos proporcionados provienen en parte de Internet. Si existe alguna infracción de sus derechos de autor u otros derechos e intereses, explique los motivos detallados y proporcione pruebas de los derechos de autor o derechos e intereses y luego envíelos al correo electrónico: [email protected]. Lo manejaremos por usted lo antes posible.
Copyright© 2022 湘ICP备2022001581号-3