Rumah > pembangunan bahagian belakang > C++ > Bagaimanakah C Mengendalikan Operator Tatasusunan Berbilang Argumen?

Bagaimanakah C Mengendalikan Operator Tatasusunan Berbilang Argumen?

Linda Hamilton
Lepaskan: 2024-11-19 11:12:02
asal
378 orang telah melayarinya

How Does C   Handle Multi-Argument Array Operators?

Pengendali Tatasusunan Berbilang Argumen dalam C ?

Dalam C , pengendali boleh dibebankan untuk menyediakan tingkah laku tersuai untuk pengendali terbina dalam seperti []. Walau bagaimanapun, sebelum C 23, melebihkan [] untuk menerima berbilang hujah adalah tidak mungkin.

Sokongan Terhad Sebelum C 23

Percubaan untuk mentakrifkan berbilang hujah [] operator akan mengakibatkan ralat pengkompil, seperti yang dilihat dalam kod contoh:

const T& operator[](const int i, const int j, const int k) const {
    return m_cells[k*m_resSqr+j*m_res+i];
}

T& operator[](const int i, const int j, const int k) {
    return m_cells[k*m_resSqr+j*m_res+i];
}
Salin selepas log masuk

Kod ini akan mencetuskan ralat:

error C2804 binary operator '[' has too many parameters
Salin selepas log masuk

Penyelesaian Sebelum C 23

Sebagai penyelesaian, seseorang boleh membebankan operator () sebaliknya:

T& operator()(const int i, const int j, const int k) {
    return m_cells[k*m_resSqr+j*m_res+i];
}
Salin selepas log masuk

Sokongan dalam C 23

Dari C 23, bahasa itu termasuk sokongan untuk operator berbilang hujah []. Akibatnya, kod yang ditunjukkan sebelum ini adalah sah dan akan membenarkan berbilang argumen subskrip dihantar terus kepada pengendali [].

Atas ialah kandungan terperinci Bagaimanakah C Mengendalikan Operator Tatasusunan Berbilang Argumen?. 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