Registro de aprendizaje 20201025

registro de aprendizaje de c ++ 20201025

Puede que no haya necesariamente un objeto si hay espacio, y debe haber espacio si hay un objeto.
Ejemplo:

class Empty
{
    
    
public:
	Empty(const Empty &e) {
    
    }
};

int main()
{
    
    
	Empty x;
	Empty y(x);
}

El objeto vacío no tiene miembros, pero el tamaño del objeto instanciado x es 1 byte, donde un byte representa un marcador de posición

El constructor en c ++ puede tomar valores predeterminados.
Cuando el miembro es una matriz, el constructor con parámetros debe asignarse bit a bit

class Object
{
    
    
private:
	int ar[5];
public:
	Object(int x = 0)
	{
    
    
		for(int i = 0;i < 5;i++)
		{
    
    
			ar[i]  = 0;
		}
	}
};
int main()
{
    
    
	Object a(10);
	Object b(a);
	Object x;
}

char * p = new char arr [10]
delete [] p Al
abrir un espacio continuo, también necesitamos liberar el espacio continuo

Copia superficial:
la copia superficial del puntero es para copiar la dirección del puntero. Si dos punteros apuntan a la misma dirección,
1. Uno de los punteros libera el espacio señalado y el otro puntero libera el espacio señalado por el puntero, el sistema se bloqueará (versión secundaria)
2. Si el espacio señalado no se libera antes de modificar la dirección señalada por el puntero, se producirá una pérdida de memoria

Copia profunda: la copia
profunda opera sobre los datos en sí. Si simplemente copia el puntero, pueden surgir algunos problemas.

Pequeño punto:
el parámetro de la función strlen () no puede ser nulo
. El tamaño del espacio del puntero es 4.
Si la variable referenciada puede devolverse depende de la vida útil de la variable. Si la vida útil se ve afectada por la función, no puede ser usado (será destruido)

Supongo que te gusta

Origin blog.csdn.net/weixin_45137562/article/details/109280579
Recomendado
Clasificación