可能性の重複:
What will happen when I call a member function on a NULL object pointer?オブジェクトインスタンスなしでnonstatic member-functionを呼び出すことはなぜ可能ですか?
まあ、私はこのコードとプログラム出力はそれを自己説明だと思う:
#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;
}
プログラム出力:
0を非静的関数がオブジェクトなしで呼び出されましたか?
なぜ可能ですか?
これは未定義の動作なので、何かが起こる可能性があります。 –
@FredLarsonは、実際には、実際にはなぜそれが可能か説明しません。 –
顔で自分を撃ってしまうのを止めるのはC++の仕事ではないので可能です。 –