C++ | Sobrecarga del operador | Pregunta 3

¿Cuál de los siguientes operadores está sobrecargado de forma predeterminada por el compilador en todas las clases definidas por el usuario, incluso si el usuario no ha escrito?

1) Comparison Operator ( == )
2) Assignment Operator ( = ) 

(A) 1 y 2
(B) Solo 1
(C) Solo 2
(D) Ninguno de los dos

Respuesta: (C)
Explicación: El operador de asignación está disponible de forma predeterminada en todas las clases definidas por el usuario, incluso si el usuario no lo ha implementado. La asignación predeterminada hace una copia superficial.

Pero el operador de comparación “==” no está sobrecargado.

#include<iostream>
using namespace std;

class Complex {
private:
    int real, imag;
public:
    Complex(int r = 0, int i =0)  {real = r;   imag = i;}
};

int main()
{
    Complex c1(10, 5), c2(2, 4);

    // For example, below code works fine
    c1 = c2;

    // But this code throws compiler error
    if (c1 == c2)
       cout << "Same";

    return 0;
}

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 *