Eventuali duplicati:
What will happen when I call a member function on a NULL object pointer?Perché è possibile chiamare una funzione membro non statica senza un'istanza dell'oggetto?
Beh penso che questo codice e il programma di uscita spiegare è di per sé:
#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;
}
output del programma:
Funzione non statica chiamata senza oggetto?
perché è possibile?
Perché è un comportamento non definito, quindi può succedere di tutto. –
@FredLarson, anche se è vero, in realtà non * spiega * perché è possibile. –
È possibile perché non è compito di C++ impedirti di spararti in faccia. –