Duplicar posible:
What will happen when I call a member function on a NULL object pointer?¿Por qué es posible llamar a la función miembro no estática sin una instancia de objeto?
Bueno, creo que este código y el programa de salida explicarlo auto:
#include <iostream>
#include <string>
using namespace std;
class Test
{
public:
void Not_Static(string args)
{
cout << args << endl;
}
};
int main()
{
Test* Not_An_instance = nullptr;
Not_An_instance->Not_Static("Non-static function called with no object?");
cin.ignore();
return 0;
}
salida del programa:
¿Se ha llamado a la función no estática sin ningún objeto?
¿por qué es esto posible?
Porque es un comportamiento indefinido, por lo que cualquier cosa puede suceder. –
@FredLarson, aunque es cierto, en realidad * no explica * por qué es posible. –
Es posible porque no es tarea de C++ evitar que te pegues un tiro en la cara. –