thể trùng lặp:
What will happen when I call a member function on a NULL object pointer?Tại sao có thể gọi hàm thành viên không tĩnh mà không có một cá thể đối tượng?
Vâng, tôi nghĩ rằng mã và chương trình đầu ra này giải thích nó tự:
#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;
}
đầu ra chương trình:
Chức năng không tĩnh gọi là không có đối tượng?
tại sao điều đó lại có thể xảy ra?
Vì hành vi không xác định nên mọi thứ đều có thể xảy ra. –
@ FredLarson, mặc dù sự thật, nó không thực sự * giải thích * tại sao nó có thể. –
Có thể bởi vì nó không phải là công việc của C++ để ngăn bạn bắn mình vào mặt. –