C++ | Sobrecarga del operador | Pregunta 10 – Part 1

¿Cuál de las siguientes funciones de operador no puede ser global, es decir, debe ser una función miembro?
(A) nuevo
(B) eliminar
(C) Operador de conversión
(D) Todas las anteriores

Respuesta: (C)
Explicación: nuevo y eliminar pueden ser globales, consulte el siguiente ejemplo.


#include
#include
#include

using namespace std;

class Myclass {
    int x;
public:
    friend void* operator new(size_t size);
    friend void operator delete(void*);
    Myclass(int i) {
        x = i;
        cout << "Constructor called \n";
    }
    ~Myclass() { cout << "Destructor called \n"; }
};


void* operator new(size_t size)
{
    void *storage = malloc(size);
    cout << "new called \n";
    return storage;
}

void operator delete(void *p )
{
    cout<<"delete called \n";
    free(p);
}

int main()
{
    Myclass *m = new Myclass(5);
    delete m;
    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 *