La segunda semana de aprendizaje: función constructora

  1. Constructor también es una especie de función miembro
  • Nombre igual que el nombre de la clase, sin valor de retorno, parámetros opcionales
  • El constructor se llama automáticamente cuando se genera el objeto. Una vez generado el objeto, el constructor no es válido (se llama al constructor antes de que exista el objeto)
  • Varios constructores
  1. por qué necesita?
  • No es necesario escribir funciones de inicialización y no se preocupará por olvidarse de llamar a la función de inicialización.
  • Algunos objetos se utilizan antes de inicializarlos para evitar cometer errores.
  1. utilizar
  • Debe haber un constructor predeterminado. Si escribe un constructor usted mismo, debe escribir un constructor predeterminado (con los parámetros predeterminados completos o sin parámetros)
  • Se puede inicializar mediante la lista de inicialización
  • Polimorfismo constructor

El uso del constructor en la matriz:

#include<iostream>
using namespace std;
class Test{
    
    
	private:
		int x;
	public:
		Test():x(0){
    
    cout<<"Constructor 1 called\n";}
		Test(int n):x(n){
    
    cout<<"Constructor 2 called\n"; }
}; 

int main()
{
    
    
	Test a[2];
	Test b[2]{
    
    3,4};
	Test c[2]{
    
    3};
	Test* d = new Test[2];
	delete [] d;
	return 0;
}

Resultado: Inserte la descripción de la imagen aquí
(complemento :, Test* e[3]={new Test(3),new Test};esto llamará al constructor dos veces, porque e es una matriz de punteros, y el puntero no llamará automáticamente al constructor)

Supongo que te gusta

Origin blog.csdn.net/ZmJ6666/article/details/108550884
Recomendado
Clasificación