Registro de Aprendizagem 20201025

registro de aprendizagem c ++ 20201025

Pode não haver necessariamente um objeto se houver espaço e deve haver espaço se houver um objeto.
Exemplo:

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

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

O objeto Vazio não tem membros, mas o tamanho do objeto instanciado x é de 1 byte, onde um byte representa um espaço reservado

O construtor em c ++ pode assumir valores padrão.
Quando o membro é uma matriz, o construtor com parâmetros precisa ser atribuído 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 Ao
abrir o espaço contínuo, também precisamos liberar o espaço contínuo

Cópia
rasa: a cópia rasa do ponteiro serve para copiar o endereço do ponteiro. Se dois ponteiros apontam para o mesmo endereço,
1. Um dos ponteiros libera o espaço apontado e o outro libera o espaço apontado pelo ponteiro, o sistema irá travar (liberação secundária)
2. Se o espaço apontado não for liberado antes de modificar o endereço apontado pelo ponteiro, isso causará um vazamento de memória

Cópia profunda: a cópia
profunda opera nos próprios dados. Se você simplesmente copiar o ponteiro, alguns problemas podem ocorrer

Pequeno ponto:
O parâmetro da função strlen () não pode ser nulo
. O tamanho do espaço do ponteiro é 4.
Se a variável referenciada pode ser retornada depende do tempo de vida da variável. Se o tempo de vida for afetado pela função, ele não pode ser usado (será destruído)

Acho que você gosta

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