C ++ Primer: Capítulo 6 Resumen


Capítulo 6 Funciones

6.1 función de base

Los contenidos básicos:

  1. definición de función: tipo de retorno, nombre de la función, la lista de parámetros, la función de los mismos.
  2. Llamando a la función y la función llamada, parámetros y argumentos, tipo de retorno de la función.
  3. Las variables locales: las variables definidas parámetro interno cuerpo de la función. automático de objetos: el objeto existe sólo durante la ejecución del bloque. variables estáticas locales: la primera vez cuando se utiliza la inicialización, incluso si termina en una función se ha realizado, tienen que esperar hasta que el programa termina solamente fue destruido.
  4. Las declaraciones de funciones (prototipos de función): sólo se pueden definir una vez, puede ser declarado muchas veces. Función sin declarar el cuerpo de la función, termina con un punto y coma.
  5. La compilación por separado.

observaciones:

  1. devuelve la función del tipo de vacío, que muestra la función no devuelve ningún valor. La función no puede devolver una matriz o función, pero la función devuelve un puntero a una matriz o un puntero.
  2. Las variables locales son accesibles solamente en el ámbito de la función, que será ocultar el nombre (nombre de dominio declaró en un papel con el mismo nombre, se oculta declaración de entidad alcance externa).
  3. variables estáticas locales de tipo incorporado, si no se ha iniciado de forma explícita, se realiza el valor de inicialización, el valor inicial de la variable 0.
  4. Si no se ha utilizado la función, la función sólo puede declare no definido.
  5. Funciones deben ser declaradas en el archivo de cabecera, la función definida en el archivo de origen, el archivo de origen y el archivo de cabecera debe ser incluido.

paso 6.2 parámetro

Los contenidos básicos:

  1. Valor se pasa: pase parámetro de tipo de no referencia, puede ser un parámetro de puntero.
  2. Pasado por referencia: argumentos de referencia.
  3. const y parámetros argumentos: otros argumentos que participan en el proceso de inicialización para inicializar la misma forma.
  4. matriz de parámetros, el parámetro de referencia de matriz, pasando matrices multidimensionales.
  5. : el procesado de las opciones de línea de comandos.
  6. la función argumento deformable, parámetro de puntos suspensivos.

observaciones:

  1. Al pasar un valor de puntero puede ser transmitida, el puntero es un parámetro real de participar en el punto dos punteros a los mismos objetos en diferentes punteros. La modificación del parámetro de puntero no cambia el puntero del argumento, el puntero de parámetros referentes argumento de un puntero de modificación no cambia, pero su referente sería cambiado.
  2. Argumento pasado por referencia puede ser modificado para evitar la copia de objetos de gran tamaño, la información adicional puede ser devuelto. Se recomienda en lugar de un parámetro de puntero parámetro de referencia.
  3. puntero de referencia común y parámetro de tipo de juego ordinario utilizan sólo argumento; parámetro de referencia constante de unión puede tomar cualquiera de la expresión de conversión de energía.
  4. Trate de usar las constantes referencias vinculantes a fin de no confundir los argumentos pueden ser modificados, mientras que la expansión de la función puede aceptar los argumentos varían.
  5. La matriz se pasa tres métodos: la matriz de etiqueta de cierre en sí; pasar una matriz de punteros al primer elemento y el elemento de cola trasera; la definición de parámetro representa un tamaño de la matriz.
  6. argv [0] para guardar el nombre del programa, parámetro de entrada de usuario real se inicia a partir de argv [1].
  7. Dos métodos de transferencia deformable de referencia: transmitir parámetro initializer_list; utilizando una plantilla de parámetro variable.
  8. elemento de objeto initializer_list siempre será un valor constante, no puede ser modificado.

6.3 El tipo de retorno y una instrucción de retorno

Los contenidos básicos:

  1. Sin valor de retorno de la función, la función tiene un valor de retorno.
  2. Devuelve una matriz de punteros.

observaciones:

  1. Si el ciclo contiene una instrucción de retorno, el ciclo siguiente también debe tener una instrucción de retorno.
  2. función devuelve una referencia, de hecho, es volver un alias citado objeto.
  3. No volver a una referencia de objeto local o puntero. Desde el final de la función, las variables locales, y el espacio ocupado por el puntero ha sido liberado, no hay puntos más para un área de memoria válida.
  4. Llamar a una función devuelve un valor de referencia obtenido izquierda, la otra para obtener el tipo de valor de retorno.
  5. La función devuelve una lista de valores de soportes de flores incluido.
  6. función recursiva que está directa o indirectamente llama a sí misma la función. función recursiva debe tener una ruta que no contenga llamadas recursivas, que tiene que haber una condición de terminación recursivo, no sería un bucle recursivo. principales funciones no pueden llamarse a sí misma.
  7. función devuelve un puntero a un método de matriz: matriz de punteros retorno directo; TypeAliases; decltype la declaración de tipo de cambio; cola oponerse tipo de retorno.

6.4 Función de sobrecarga

Los contenidos básicos:

  1. funciones sobrecargadas: el mismo alcance, el mismo nombre de la función, diferente lista de parámetros.

observaciones:

  1. La función principal no es recursivo, no sobrecargado.
  2. función de sobrecarga simplemente cantidades o parámetros diferentes tipos de parámetros forma, el tipo de retorno no se considera, se ve el nombre del parámetro, la parte superior const ignorado, inferior a distinguir const.
  3. Tres resultados posibles llaman función sobrecargada: el mejor partido; no puede competir; llamada ambigua.
  4. No ponga las declaraciones de funciones ámbito local, porque oculta el mismo nombre de la entidad ámbito exterior.

6.5 características del lenguaje de propósito especial

Los contenidos básicos:

  1. Parámetros por defecto, función en línea, la función constexpr.
  2. assert macro preprocesador, NDEBUG variable de preprocesador.

observaciones:

  1. Tiene un valor predeterminado de un parámetro, todos los parámetros posterior debe tener un valor por defecto; diseño por defecto cuando el argumento de la función, por lo general colocado delante del parámetro modificado, el cambio de parámetro con poca frecuencia vuelve a poner; función declarado en repetidas ocasiones, pero en el alcance dado, sólo puede darse un argumento predeterminado, a excepción de las variables locales, la expresión general del tipo podría ser utilizado para hacer coincidir argumento predeterminado.
  2. Las funciones en línea que se añaden antes de la línea tipo de retorno, puede evitar la sobrecarga de una llamada de función.
  3. constexpr función requiere tipo de retorno y parámetros de tipos son tipos literales (enteros y de coma flotante) , y sólo una instrucción de retorno. constexpr funciones se designan implícitamente como funciones en línea. parámetros de la función de la forma constexpr y valores de retorno no son necesariamente expresión constante.
  4. constexpr función en línea y funciones generalmente se definen en el archivo de cabecera, múltiples definiciones pueden ser, pero deben ser definidas con exactitud.
  5. Si expr es verdadera, afirman nada que hacer, si es falso, afirman salida y termina la ejecución del programa. Comúnmente utilizado para comprobar las condiciones macro assert "no pueden pasar".
  6. las variables de pretratamiento y los nombres de macro deben ser únicos dentro del programa.
  7. Al definir NDEBUG puede evitar correr el coste requeridos para las condiciones de inspección, no se realiza el control del funcionamiento equivalente.

6.6 función Matching

Los contenidos básicos:

  1. Los candidatos y las funciones viables.
  2. Mejor partido, ninguna coincidencia, la llamada ambigua.
  3. Tipo de argumento conversión.

observaciones:

  1. El candidato con la función de función con el mismo nombre de llama; su declaración visible en el sitio de llamada.
  2. parámetro de la función de tamaño Viable es igual a la cantidad de parámetro real de la cantidad, forma o participar en el mismo argumento puede ser convertido en los tipos de argumentos tipo de parámetro.
  3. Esa es la mejor forma posible partido para participar en el tipo de argumento de la función que más se asemejan, sin función de adaptación que no se encuentra funciones viables, la línea ambigua de la llamada de función no pueden ser mejor partido.
  4. Mejor coincidencia Evaluación: coincidencia exacta (del mismo tipo, o una matriz de punteros de función a su vez, las deleciones superior const)> conversión const> Tipo de elevación> tipo aritmético conversión> conversión de tipo de clase.

puntero 6.7 función

Los contenidos básicos:

  1. Es decir, la función de puntero a un puntero de función.

observaciones:

  1. Cuando el operador función de asignación de direcciones-puntero es opcional.
  2. Requerido parámetro de tipo puntero a función y tipo de retorno coincidencia exacta, la conversión de punteros a funciones para inicializar la ausencia o la asignación.
  3. Valor como una función, convierte automáticamente en punteros. Pero no devuelve automáticamente la función de conversión de tipo en un puntero, las pantallas deben devolver un puntero al tipo especificado.
  4. Un puntero de función como valor de retorno o parámetro, es generalmente de tipo utilizado de alias, decltype. Si el valor de retorno, establece el tipo de retorno final puede ser utilizado.
Publicado 77 artículos originales · ganado elogios 25 · Vistas a 10000 +

Supongo que te gusta

Origin blog.csdn.net/qq_34801642/article/details/104058736
Recomendado
Clasificación