¿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; }
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