¿Cómo imprimir el tamaño del parámetro de array en C++?

¿Cómo calcular el tamaño de un parámetro de array en una función? Considere el siguiente programa C++:  CPP // A C++ program to show that it is wrong to // compute size of an array parameter in a function #include <iostream> using namespace std;   void findSize(int arr[]) {     cout << sizeof(arr) << endl; } … Continue reading «¿Cómo imprimir el tamaño del parámetro de array en C++?»

Invertir una array hasta una posición dada

Dada una array arr[] y una posición en la array, k. Escriba un nombre de función inversa (a[], k) tal que invierta el subarreglo arr[0..k-1]. El espacio adicional utilizado debe ser O(1) y la complejidad de tiempo debe ser O(k). Ejemplo:  Input: arr[] = {1, 2, 3, 4, 5, 6} k = 4 Output: arr[] = … Continue reading «Invertir una array hasta una posición dada»

Segmentación de objetos en C++

Cuando un objeto de clase derivada se asigna a un objeto de clase base en C++, los atributos adicionales del objeto de clase derivada se cortan (no se consideran) para generar el objeto de clase base; y todo este proceso se denomina segmentación de objetos . En palabras simples, cuando los componentes adicionales de una … Continue reading «Segmentación de objetos en C++»

¿Qué sucede cuando se otorga un acceso más restrictivo a un método de clase derivada en C++?

Hemos discutido un tema similar en Java aquí . A diferencia de Java, C++ permite dar un acceso más restrictivo a los métodos de clases derivadas. Por ejemplo, el siguiente programa compila bien.  C++ #include<iostream> using namespace std;   class Base { public:     virtual int fun(int i) { } };   class Derived: public Base … Continue reading «¿Qué sucede cuando se otorga un acceso más restrictivo a un método de clase derivada en C++?»

Estructura vs clase en C++ – Part 1

En C++, una estructura funciona de la misma manera que una clase, excepto por dos pequeñas diferencias. El más importante de ellos es ocultar los detalles de implementación. Por defecto, una estructura no ocultará sus detalles de implementación a quien la use en el código, mientras que una clase por defecto ocultará todos sus detalles … Continue reading «Estructura vs clase en C++ – Part 1»

El operador de coma debe usarse con cuidado

En C y C++, la coma es el último operador en la tabla de precedencia . Por lo tanto, la coma debe usarse con cuidado en el lado derecho de una expresión de asignación. Por ejemplo, uno podría esperar la salida como b = 10 en el programa a continuación. Pero el programa imprime b … Continue reading «El operador de coma debe usarse con cuidado»

¿El compilador de C++ crea un constructor predeterminado cuando escribimos el nuestro? – Part 1

No, el compilador de C++ no crea un constructor predeterminado cuando inicializamos el nuestro, el compilador de forma predeterminada crea un constructor predeterminado para cada clase; Pero, si definimos nuestro propio constructor, el compilador no crea el constructor predeterminado. Esto se debe a que el constructor predeterminado no acepta ningún argumento y si se crean … Continue reading «¿El compilador de C++ crea un constructor predeterminado cuando escribimos el nuestro? – Part 1»

Miembros de datos estáticos en C++ – Part 1

Los miembros de datos estáticos son miembros de clase que se declaran mediante palabras clave estáticas. Un miembro estático tiene ciertas características especiales. Estos son: Solo se crea una copia de ese miembro para toda la clase y todos los objetos de esa clase la comparten, sin importar cuántos objetos se creen. Se inicializa antes … Continue reading «Miembros de datos estáticos en C++ – Part 1»