En ausencia de cómo revisar el contenido de C ++, la entrevista de hoy fue preguntado mucho, cómo no podía respuesta fue, por lo que tengo que poner esa parte del proceso de comunicación, revisemos lo que C ++.
C ++ bajo 1.Linux medio ambiente.
El programa de la primera C ++
#include <stdio.h> #include <iostream> int main () { printf ( " hola mundo \ n " ); // C语言写法 std :: cabo << " hola " << " mundo " << std :: endl; // C ++写法retorno 0 ; }
En C ++ programas compilados bajo el comando del sistema Linux: g ++ -o hola hello.cpp
(1) sufijo C ++: archivos .cpp .cxx .cc .hpp .h
Archivos (2) C ++ de cabecera: archivo de cabecera estándar de C ++ no es .h, como iostream.
1. Si desea utilizar C ++ para el lenguaje C función de biblioteca estándar, cuando se añade debe .h archivo se elimina la cabecera, y C se añade delante, como stdio.h ------> cstdio
2. También se puede especificar el archivo de cabecera lenguaje C cuando se añade
extern “C” {#include <add.h>}
(3) cin en los programas en C ++, cout, cerr, estorbo objeto se crea automáticamente (similar al C archivos de idioma stdin, stdout, stderr), el usuario ya no puede crear nuevo objeto istream ostream u objetos.
std :: cin >> variables tales como: int A; Doble B; std :: cin >> A >> B; std :: COUT << variable de / constante ejemplo: int A = 12 es ; Doble B = 10,1 ; std :: tribunal << un << "" << b << std :: endl;
2.C ++ extensiones a la C de
Asignar espacio de montón
(1) aplicación y liberación malloc --- espacio libre en el lenguaje C en un espacio propio de aplicación del usuario y la liberación
Aplicación y liberar nuevo (2) Espacio ----- de eliminación en C ++
formato de aplicación: Tipo de datos * P = nuevos nuevo tipos de datos tales como: Char * P = nuevo nuevo Char aplican un espacio de objetos char (1 byte) en el espacio de montón Char * P = nuevo nuevo Char ( 'A') y para aplicar un espacio byte inicialización con un Char * P = ( Char *) el malloc ( 1. ) Char * P = nuevo nuevo Char [ 100 ] en el espacio de aplicación montón objetos 100 Char - array formato de salida: puntero Delete; por ejemplo: P Delete; // sólo se aplican un objeto de Char delete [] P; // espacio libre contiguo (espacio objeto 100 de liberación)
nuevo y borrar con el lenguaje C malloc y libre de las similitudes y diferencias en C ++
(1) se puede aplicar para espacio de almacenamiento dinámico, el espacio es continuo.
(2) nuevo constructor es equivalente a malloc +
(3) destructor de eliminación corresponde libre +
Los espacios de nombres
Papel: Evita funciones, variables, tipos de conflictos, para desarrollar cruz cuando el conflicto se puede evitar.
espacio de nombres de espacio de nombre { miembros (funciones no principales, variables, constantes, estructura, etc.) };
espacio de nombres class01 { cadena de gato; cadena se levantó; }; espacio de nombres class02 { cadena de gato; cadena se levantó; }; int main () { class01 :: jack = “classs01Jack”; class02 :: jack = “class02Jakc”; }
Miembros uso del espacio
1. Los miembros directos a usar el espacio ::
class01 :: jack = “classs01Jack”;
2. utilizando el indicador de guía
el uso de espacio de nombres class01; // el miembro class01 espacio Todos los expuestos en la zona global // Cadena Jack = ""; int main () { Jack = "classs01Jack"; // Jack el interior perteneciente class01 class02 :: jack = "class02Jakc "; // perteneciente class02 dentro Jack }
3. Use los que utilizan los miembros de los estados
el uso de class01 :: jack; // el espacio class01 jack similar para crear una copia de la toma de la posición actual de cadena se define en el archivo actual; int main () { jack = "classs01Jack"; // class01 perteneciente dentro jack class02 :: = Jack "class02Jakc"; // perteneciente class02 dentro Jack }
Los espacios de nombres
1. espacio de nombres anidados
espacio de nombres de la AAA { namespace la acreditación { Cadena nombre; } } // espacio anidado // Para nombrar // la AAA :: :: nombrar la acreditación
2. el mismo espacio de nombres del mismo espacio de nombres pertenecen al mismo espacio de nombres, en la misma zona
// mismo nombre de espacio de nombres - pertenece (la misma zona) con un espacio de espacio de nombres de la CCC { int Número = 123 ; }; espacio de nombres de la CCC { int datos = 321 ;; }
3. Los miembros de Anonymous cuando el espacio espacio espacio a utilizar debe ser añadido al nombre, con la excepción del espacio anónimo, miembros del espacio anónimo en el documento actual se pueden utilizar directamente (sólo en el archivo actual)
espacio de nombres { int myage; }
cita
La aplicación es la variable o alias constante.
int a = 10 ; int * p = & a;
Definiciones: Tipo de datos = & variable de referencia
= Const referencia al tipo de datos y variables / constantes
int a = 10 ; int & B = a; B es una referencia a una
características de referencia:
1 | Las referencias no ocupan espacio en la memoria, y los objetos espacio común que se hace referencia |
2 | Referencias deben coincidir con el tipo de datos del objeto referenciado |
3 | Cuando se hace referencia a la definición debe ser inicializado |
4 | Una referencia sólo puede referirse a un objeto, un objeto puede hacer referencia a varias veces, de referencia puede ser referenciado de nuevo |
5 | Si la referencia de objeto es constante, entonces la referencia debe ser modificado por const |
Se citó como argumento
Función parámetro de modo que pasa: 1 por valor 2. Dirección referencias de paso 3. pase
void swap ( int & a, int y b) { int t = a; un = b; b = t; } Int a = 123 , B = 456 ; swap (a, b);
modificación referencia const
const int a = 100 ; const int & b = a; const int & c = 123 ;
const modificado variable global const int size = 100 ; // almacenado en el segmento de datos de sólo lectura const modificado variables locales const int psize = 200 es ; // datos se almacenan en el espacio de pila int * p = ( int *) y psize; // puntos P espacio psize es una copia del símbolo, * p puede ser modificado, pero no modificar en sí psize * P = 20 es ; COUT << * P << "" << endl << psize; ==> 20 es , 200 es ;
C ++ se utiliza generalmente en lugar de los macros constante const modificados
#define tamaño 100 ==> const int size = 100;
1. const modificado constante cuando está en uso comprueba el tipo de datos, la macro no está definido (reemplazo directo)
2. const modificado espacio constante una vez asignados solamente cuando está en uso, varias macros asignadas espacio
3. Los datos modificado const serán optimizados
parámetro de función se utiliza cuando se hace referencia a las modificaciones --- const permite al compilador para señalar el error, por lo que se cambia el valor del objeto referenciado dentro de la función si no, entonces hay que añadir la modificación de parámetros de referencia const.
int add ( const int & a, const int y b) { // a ++; volver a + b; }
la sobrecarga de funciones
Definición: nombre de la función de los mismos lista de parámetros de función diferentes tablas, esta serie de función se llama sobrecarga de funciones, sobrecarga de funciones puede resolver el problema del mismo nombre.
int add ( const int & a, const int & b) { volver a + b;} doble add ( const doble & a, const doble y b) { volver a + b;}
Sobrecarga de funciones - una llamada de función
--- sobrecarga de funciones en tiempo de compilación coincidirá con la función correspondiente de acuerdo con el argumento de la función
cadena estática --- ed en tiempo de compilación se ha determinado como una llamada de función (estática ed cadena polimorfismo)
¿Por qué se puede lograr el C ++ sobrecarga de funciones --- compilador al compilar la función detecta el nombre de la función, y la lista de parámetros,
compilador de lenguaje C en función de tiempo de compilación sólo detecta los nombres de función, no serán detectados parámetros de la función
función de base sobrecarga: 1, el mismo nombre de la función, 2, lista de parámetros diferentes, el Add (int, double), 3.const modificado puede ser utilizado como un puntero o referencia de función de base sobrecarga
parámetros por defecto la función - argumentos de la función por defecto
#include <iostream> extern " C " { #include <sys / types.h> #include <sys / stat.h> #include <fcntl.h> } usando espacio de nombres std; int open_lcd ( const char * filename = " / dev / fb0 " , int flag = O_RDWR) {} int principal ( void ) { int fd = open_lcd ( " / dev / fb0 " , O_RDWR); fd = open_lcd ( " / dev / fb0 "); fd = open_lcd (); volver 0 ; }
Reglas predeterminadas de parámetros: la columna de parámetros debe continuamente de derecha a izquierda por defecto
int espectáculo (int a = 2, int b = 1, int c = 0);
int espectáculo (int a, int b, int c = 1)
int espectáculo (int a, int b, int c)
PD: Hay lugares donde incorrecto, por favor corríjanme, aprenden unos de otros.