Computer >> Hướng Dẫn Máy Tính >  >> Lập Trình >> C++

Gọi hàm thành viên qua con trỏ đối tượng NULL trong C++


Một hàm thành viên của lớp có thể được gọi bằng con trỏ đối tượng NULL.

Lưu ý - Đây là hành vi chưa định nghĩa (undefined behaviour) và không có đảm bảo về việc thực thi chương trình. Kết quả thực tế phụ thuộc vào trình biên dịch được sử dụng.

Chương trình dưới đây minh họa điều này.

Ví dụ

#include <iostream>
using namespace std;

class Demo {
public:
    void fun() {
        cout << "Hàm thành viên này được gọi qua con trỏ đối tượng Null.";
    }
};

int main() {
    Demo *ptr = NULL;
    ptr->fun();
    return 0;
}

Kết quả

Hàm thành viên này được gọi qua con trỏ đối tượng Null.

Hãy hiểu chương trình trên.

Lớp Demo chứa hàm thành viên fun(). Hàm này hiển thị "Hàm thành viên này được gọi qua con trỏ đối tượng Null."

class Demo {
public:
    void fun() {
        cout << "Hàm thành viên này được gọi qua con trỏ đối tượng Null.";
    }
};

Trong hàm main(), con trỏ đối tượng null ptr được tạo. Sau đó hàm thành viên fun() được gọi bằng ptr.

int main() {
    Demo *ptr = NULL;
    ptr->fun();
    return 0;
}