Top 20 preguntas de la entrevista C&C ++

1. Defina las clases de almacenamiento y explique el dominio de la aplicación.

Registrarse – Dígale al compilador para usar un registro de CPU para Aceess Fast para esa variable.

Auto : es una variable creada e inicializada cuando se define. No es visible fuera del bloque.

estático – definido dentro de la función conserva su valor entre las llamadas. Siempre se inicializa con 0. definido como global en un archivo es visible para las funciones de ese archivo.

extern : la definición de la variable está en otro archivo. </ P>

2. Defina los calificadores de almacenamiento

const – Defina una variable que no puede cambiar su valor a lo largo de la ejecución del programa.

volátil < /B> – Defina una variable que se pueda cambiar indirectamente. Un ejemplo puede ser un contador de registro que se actualiza por el hardware.

mutuable – un miembro de una estructura u objeto se puede cambiar incluso si la estructura, por ejemplo, se declara const:

ex: struct complew {mutuable int x; int y;};

const complejo myComplex = {1, 2};

myComplex.x = 3; / * correcto */

3. Dé un ejemplo para una variable “const” y “volátil”. ¿Es posible?

Sí, un registro de estado para un microcontrolador.

4. Detectar si una lista vinculada es circular.

Necesita usar 2 punteros, una incremento por 1 y otra por 2. Si la lista es circular, entonces el puntero que se incrementa por 2 elementos pasará sobre el primer puntero.

5. ¿Tiene alguna observación?

#define res (a) a*a

Usando en esta forma, el resultado no será como nosotros esperar. Pensando que “A” se reemplaza con (2+3), entonces obtendremos 2+3*2+3 = 11 en su lugar (2+3)*(2+3) = 25.

READ  La alegría de los auriculares Bluetooth creativos WP-300

Usar siempre #define res (a) (a)*(a)

6. Defina un puntero “colgante”

Se obtiene un puntero colgante utilizando la dirección de un objeto que fue liberado.

7. Cualquier diferencia entre “const int *ptr” e int *const ptr “?

Sí, es una diferencia importante. Primero defina los datos constantes y el segundo defina un puntero constante.

8. ¿Cuál es la declaración y definición de una variable?

La definición contiene la implementación para un método o declaración de variable. Esto es solo un ejemplo. < >

9. Dé una solución para una situación de desbordamiento de pila.

func_call () {

funct_call ();

>}

Cada vez que la función anterior se llama la dirección de retorno se almacena en la pila. Llamar en este bucle infinito causará un desbordamiento de pila.

10. Da 4 Ejemplos para un bucle infinito.

a. while (1) {}

b. for (;;) {}

c. do {} while {1};

d. Etiqueta:

goto etiqueta;

11. Defina la encapsulación </p >

La parte de la información se puede ocultar sobre un objeto. La encapsulación aísla la funcionalidad interna del resto de la aplicación.

12. Defina la herencia

< P> Una clase, llamada derivada, puede reutilizar el comportamiento de otra clase, conocido como clase base. Los métodos de la clase base se pueden extender agregando nuevas propiedades o métodos.

13. Definir polimorfismo

Una función que tiene el mismo nombre, pero un tipo o número diferente de argumentos.

Ej: las funciones a continuación pueden ser miembros de la misma clase. <// p>

void calc (int a, int b);

void calc (float a, float b);

READ  ¿En el mercado de un enrutador inalámbrico? No pase por alto estas 3 gemas

14. Definir constructor, constructor predeterminado y copia constructor

El constructor se usa para crear e inicializar un objeto.

El constructor predeterminado no tiene argumentos y se crea por defecto si no hay definición explícita se usa.

El constructor de copias se usa para inicializar las variables del miembro con los valores de otro objeto de la misma clase.

IMPORTANTE: El constructor de copias se llama por defecto cuando se devuelve un objeto que se devuelve desde una función o cuando el objeto se pasa como argumento por valor.

15. Defina las diferencias entre Malloc/Free y New/Delete .

malloc () – Asignar memoria en el montón, pero no llame al constructor del objeto; A diferencia de New ().

new () y delete () – llamó a objetos: construir y destruir su.

16. Defina los prototipos estándar para la función main ()

a. int main (void)

b. int main (int argc, char ** argv)

c. int main (int argc, char *argv [])

17. ¿Qué se destruye en el siguiente código?

obj *ptr = new obj [5];

delete ptr; < /b>

Solo se elimina el primer elemento del vector OBJ [5] porque PTR apunta al primer elemento de la matriz.

18. ¿Qué es una función virtual?

Una clase derivada puede usar la redefinición para una función de la clase base. Para ser posible, debe declarar esa función virtual en la clase base.

19. ¿Qué es una función en línea?

Es una directiva para el compilador que dice que el código de la función se usa cada vez que tenemos una llamada. De esta manera se evitan el salto a la rutina de funciones y regresa. La función en línea debe ser pequeña.

READ  ¿Qué son las hojas de collage digital?

20. Explique el acceso público, privado y protegido especifica.

público : se puede acceder a los datos y se pueden acceder a los métodos fuera de la clase de objetos.

<< b> protegidos : los datos y los métodos están disponibles solo para clases derivadas.

privado – no se puede acceder a los datos y los métodos fuera de la clase de objetos. </P >