C++ | Sobrecarga de funciones y argumentos predeterminados | Pregunta 4

Prediga la salida del siguiente programa C++.

include<iostream>
using namespace std;
   
class Test
{
protected:
    int x;
public:
    Test (int i):x(i) { }
    void fun() const  { cout << "fun() const " << endl; }
    void fun()        {  cout << "fun() " << endl;     }
};
   
int main()
{
    Test t1 (10);
    const Test t2 (20);
    t1.fun();
    t2.fun();
    return 0;
}

(A) Error del compilador
(B) fun()
fun() const
(C) fun() const
fun() const
(D) fun()
fun()

Respuesta: (B)
Explicación: Los dos métodos ‘void fun() const’ y ‘void fun()’ tienen la misma firma excepto que una es constante y la otra no. Además, si echamos un vistazo más de cerca a la salida, observamos que, ‘const void fun()’ se llama en el objeto const y ‘void fun()’ se llama en el objeto que no es const.
C++ permite que los métodos miembro se sobrecarguen en función del tipo const. La sobrecarga en función del tipo constante puede ser útil cuando una función devuelve una referencia o un puntero. Podemos hacer una función const, que devuelve una referencia constante o un puntero constante, otra función no constante, que devuelve una referencia o puntero no constante. Consulte lo siguiente para obtener más detalles.

Sobrecarga de funciones y palabra clave const
Cuestionario de esta pregunta

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 *