Skop Keterlihatan Fungsi Rakan Sebaris
Walaupun mentakrifkan fungsi rakan sebaris dalam kelas, skop sebenar mereka melangkaui sempadan kelas. Piawaian C menetapkan bahawa nama fungsi rakan sebaris merujuk kepada fungsi yang diisytiharkan dalam skop ruang nama tertutup yang terdekat.
Walau bagaimanapun, fungsi yang diisytiharkan ini tidak boleh diakses melalui carian yang tidak layak atau layak sehingga pengisytiharan yang sepadan disediakan dalam ruang nama tersebut skop. Akibatnya, panggilan terus ke fungsi rakan daripada kelas itu sendiri, melampirkan skop atau fungsi ahli akan mengakibatkan ralat.
Penghadan ini berpunca daripada fakta bahawa fungsi rakan diisytiharkan dalam kelas tanpa mengatasi atau mentakrifkan semula nama fungsi sedia ada. Oleh itu, pengkompil tidak mengenali fungsi dalam kelas atau melampirkan skop ruang nama sehingga ia menemui pengisytiharan eksplisit dalam ruang nama itu.
Untuk mengakses fungsi rakan sebaris, anda boleh menggunakan carian bergantung kepada hujah (ADL) . ADL membenarkan pengkompil untuk mencari fungsi berdasarkan jenis argumen yang digunakan dalam panggilan. Pendekatan ini sejajar dengan prinsip bahawa fungsi itu dianggap "berkaitan" dengan jenis yang diluluskan sebagai hujah.
Atas ialah kandungan terperinci Mengapakah Saya Tidak Boleh Memanggil Fungsi Rakan Sebaris Secara Terus dari Dalam Kelas Penentuan Mereka?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!