Salida del programa C++ | conjunto 5

Nivel de dificultad: Novato
Prediga la salida de los siguientes programas de C++.
Pregunta 1 
 

C++

#include<iostream>
using namespace std;
 
class Test {
    int value;
public:
    Test(int v);
};
 
Test::Test(int v) {
    value = v;
}
 
int main() {
    Test t[100];
    return 0;
}

Producción: 
 

Compiler error

La clase Prueba tiene un constructor definido por el usuario «Prueba (int v)» que espera un argumento. No tiene un constructor sin ningún argumento ya que el compilador no crea el constructor predeterminado si el usuario define un constructor (Ver esto ). Seguir el programa modificado funciona sin ningún error.
 

C++

#include<iostream>
using namespace std;
 
class Test {
    int value;
public:
    Test(int v = 0);
};
 
Test::Test(int v) {
    value = v;
}
 
int main() {
    Test t[100];
    return 0;
}

Pregunta 2 
 

C++

#include<iostream>
using namespace std;
int &fun() {
  static int a = 10;
  return a;
}
 
int main() {
  int &y = fun();
  y = y +30;
  cout<<fun();
  return 0;
}

Producción: 
 

40

El programa funciona bien porque ‘a’ es estático. Dado que ‘a’ es estático, su ubicación en la memoria sigue siendo válida incluso después de que fun() regrese. Entonces se puede devolver una referencia a la variable estática.
Pregunta 3 
 

C++

#include<iostream>
using namespace std;
 
class Test
{
public:
  Test();
};
 
Test::Test()  {
    cout<<"Constructor Called \n";
}
 
int main()
{
    cout<<"Start \n";
    Test t1();
    cout<<"End \n";
    return 0;
}

Producción: 
 

Start
End

Tenga en cuenta que la línea «Test t1();» no es una llamada de constructor. El compilador considera esta línea como declaración de la función t1 que no recibe ningún parámetro y devuelve un objeto de tipo Test.
Escriba comentarios si encuentra que alguna de las respuestas/explicaciones es incorrecta, o si desea compartir más información sobre los temas discutidos 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 *