Salida de programas C++ | Conjunto 26 (Constructores)

Requisito previo: constructores en C++ 
 

1. ¿Cuál es el resultado del siguiente programa? 
 

CPP

#include <iostream>
using namespace std;
 
class construct
{
    int a, b;
public:
    construct()
    {
        a = 0;
        b = 0;
    }
};
 
int main()
{
    construct c;
    cout<< "a: "<< c.a << endl << "b: "<< c.b;
    return 1;
}

Producción: 
 

error
  

Descripción: las variables de la clase son privadas por defecto en C++. Y por lo tanto, no se puede acceder a ellos fuera de la clase. Para que el código funcione perfectamente, deben declararse como públicos como el construct(), luego imprimirá a y b como 0
 

2. ¿Cuál es el resultado del siguiente programa? 
 

CPP

#include <iostream>
using namespace std;
 
class construct
{
 
public:
    float area;    
         
    construct()
    {
        area = 0;
    }
     
    construct(int a, int b)
    {
        area = a * b;
    }
     
    void disp()
    {
        cout<< area<< endl;
    }
};
 
int main()
{
    construct o;
    construct o2( 10, 20);
    o.disp();
    o2.disp();
    return 1;
}

Producción: 
 

  0
  200

Descripción: C++ permite más de un constructor. Los otros constructores deben tener parámetros diferentes. Además, los constructores que contienen parámetros reciben valores predeterminados deben cumplir con la restricción de que no todos los parámetros reciben un valor predeterminado. Esta es una situación que solo importa si hay un constructor predeterminado. Los constructores se cargan cuando se crea un objeto en función de los parámetros. 
 

3. ¿Qué constructor se ejecutará? 
 

CPP

#include<iostream>
using namespace std;
  
class constructor
{
    int x, y;
    public:
    constructor(int a = 10, int b = 20 )
    {
        x = a;
        y = b;
    }
    void Display()
    {
        cout<< x << " " << y << endl;
    }
};
int main()
{
    constructor objBix;
    objBix.Display();
    return 0;
}

Producción: 
 

Parameterized constructor (Output will be 10 20)

Descripción: cuando declaramos cualquier constructor en una clase, el compilador no crea el constructor predeterminado. Lo mismo sucede en este caso, pero como el constructor parametrizado contiene valores predeterminados para todos los argumentos, se llamará. Pero si declara el constructor predeterminado aquí, el compilador dará un error (llamada ambigua) ya que no podrá decidir a qué constructor llamar. 
 

4. ¿Cuál es el resultado del siguiente programa? 
 

CPP

#include<iostream.h>
class constructor
{
    int x;
    public:
    constructor(short ss)
    {
        cout<< "Short" << endl;
    }
    constructor(int xx)
    {
        cout<< "Int" << endl;
    }
    constructor(float ff)
    {
        cout<< "Float" << endl;
    }
};
int main()
{
    constructor c('B');
    return 0;
}

Producción: 
 

Int
  

Descripción: Como ‘B’ da el valor entero, es decir, 66, entonces, se ejecutará el constructor parametrizado con parámetro entero. 
 

5. ¿Cuál es el resultado del siguiente programa? 
 

CPP

#include <iostream>
using namespace std;
 
class constructor
{
    int a;
  public:
    constructor(int x)
    {
        a = x;
    }
     
    void display()
    {
        cout<< "a: "<<a << endl;
    }
};
int main()
{ 
   constructor c1(10);
   constructor c2 = c1;
   c1.display();
   c2.display();
   return 1;
}

Producción: 
 

a: 10
a: 10
  

Descripción: Este programa demuestra el concepto  de constructor de copias .
 

Este artículo es una contribución de I.HARISH KUMAR . Si te gusta GeeksforGeeks y te gustaría contribuir, también puedes escribir un artículo usando write.geeksforgeeks.org o enviar tu artículo por correo a review-team@geeksforgeeks.org. Vea su artículo que aparece en la página principal de GeeksforGeeks y ayude a otros Geeks.
Escriba comentarios si encuentra algo incorrecto o si desea compartir más información sobre el tema tratado anteriormente.
 

Publicación traducida automáticamente

Artículo escrito por GeeksforGeeks-1 y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *