Rumah >pembangunan bahagian belakang >C++ >Mengapa Visual Studio 2015 Memerlukan \'&\' untuk Mencipta Penunjuk kepada Fungsi Ahli?

Mengapa Visual Studio 2015 Memerlukan \'&\' untuk Mencipta Penunjuk kepada Fungsi Ahli?

Mary-Kate Olsen
Mary-Kate Olsenasal
2024-11-03 03:50:02485semak imbas

Why Does Visual Studio 2015 Require

Sintaks Bukan Standard dalam Visual Studio 2015: Menggunakan '&' untuk Penunjuk kepada Ahli

Masalah

Apabila cuba mengakses fungsi ahli dalam C tanpa menggunakan sintaks panggilan fungsi, Visual Studio 2015 menghadapi ralat: "sintaks bukan standard; gunakan '&' untuk mencipta penuding kepada ahli."

Penjelasan

Dalam Visual Studio, fungsi bukan ahli boleh digunakan dalam ungkapan tanpa menggunakan sintaks panggilan fungsi. Walau bagaimanapun, untuk fungsi ahli, ini tidak dibenarkan. Untuk mendapatkan penunjuk kepada fungsi ahli, anda perlu menggunakan operator '&'.

Resolusi

Penyelesaian kepada ralat adalah dengan meletakkan awalan nama fungsi ahli yang bermasalah dengan '& ' operator, mencipta penunjuk kepada fungsi ahli. Dengan melakukan ini, fungsi boleh digunakan dalam ungkapan tanpa sintaks panggilan fungsi.

Contoh

Pertimbangkan definisi kelas berikut:

<code class="cpp">class TicTacToe {
public:
    void player1Move(string coordX);
};</code>

Untuk mengakses ahli player1Move fungsi tanpa menggunakan sintaks panggilan fungsi, gunakan penuding berikut kepada ahli:

<code class="cpp">TicTacToe::&player1Move;</code>

Penunjuk kepada ahli ini kini boleh digunakan dalam ungkapan tanpa memanggil fungsi secara eksplisit:

<code class="cpp">TicTacToe Board;
(Board.*player1Move)("some_coordinate");</code>

Oleh menggunakan operator '&', Visual Studio boleh mentafsir maksud dengan betul dan mengelakkan ralat sintaks bukan standard.

Atas ialah kandungan terperinci Mengapa Visual Studio 2015 Memerlukan \'&\' untuk Mencipta Penunjuk kepada Fungsi Ahli?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
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