Rumah > pembangunan bahagian belakang > C++ > Mengapa Memanggil Kaedah Kelas dengan Penunjuk Null Kadang-kadang Berfungsi dalam C ?

Mengapa Memanggil Kaedah Kelas dengan Penunjuk Null Kadang-kadang Berfungsi dalam C ?

Susan Sarandon
Lepaskan: 2024-12-26 18:12:12
asal
296 orang telah melayarinya

Why Does Calling a Class Method with a Null Pointer Sometimes Work in C  ?

Mengakses Kaedah Kelas melalui Penunjuk Kelas Tidak Sah

Sesetengah senario pengaturcaraan melibatkan mengakses kaedah kelas melalui penunjuk kelas nol. Pertimbangkan contoh berikut:

class ABC {
public:
    int a;
    void print() { cout << "hello" << endl; }
};

int main() {
    ABC* ptr = NULL;
    ptr->print();
    return 0;
}
Salin selepas log masuk

yang mengejutkan, kod ini berjaya dijalankan tanpa sebarang ralat. Bagaimanakah ini boleh berlaku?

Gelagat Tidak Ditakrifkan

Dalam C , memanggil fungsi ahli menggunakan penuding yang tidak merujuk objek yang sah membentuk tingkah laku yang tidak ditentukan. Ini bermakna bahawa tingkah laku program tidak dapat diramalkan dan boleh berbeza-beza secara meluas.

Pengecualian dalam Kes ini

Dalam kod yang disediakan, fungsi ahli print() berlaku kepada tidak menggunakan penunjuk ini, yang berfungsi sebagai rujukan kepada objek. Situasi pelik ini membolehkan kod berjalan seolah-olah tanpa isu.

Walau bagaimanapun, adalah penting untuk menyedari bahawa bergantung pada tingkah laku yang tidak ditentukan itu berbahaya dan boleh membawa kepada masalah yang tidak dijangka dalam senario yang berbeza.

Atas ialah kandungan terperinci Mengapa Memanggil Kaedah Kelas dengan Penunjuk Null Kadang-kadang Berfungsi dalam C ?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

sumber:php.cn
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan