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