Rumah > pembangunan bahagian belakang > C++ > Bolehkah Fungsi C Mempunyai Nilai Lalai untuk Parameter Rujukan Bukan Const?

Bolehkah Fungsi C Mempunyai Nilai Lalai untuk Parameter Rujukan Bukan Const?

Susan Sarandon
Lepaskan: 2024-11-29 17:54:11
asal
780 orang telah melayarinya

Can C   Functions Have Default Values for Non-Const Reference Parameters?

Nilai Lalai untuk Parameter Dirujuk dalam C

Apabila menghantar parameter melalui rujukan dalam C , bolehkah anda menentukan nilai lalai untuknya?

Pertimbangkan fungsi berikut pengisytiharan:

virtual const ULONG Write(ULONG &State = 0, bool sequence = true);
Salin selepas log masuk

Percubaan untuk menyusun kod ini mengakibatkan ralat:

error C2440: 'default argument' : cannot convert from 'const int' to 'unsigned long &'
A reference that is not to 'const' cannot be bound to a non-lvalue
Salin selepas log masuk

Jawapan

Nilai lalai hanya boleh diberikan kepada rujukan tetap, bukan rujukan tidak tetap. Ini kerana C melarang mengikat sementara (dalam kes ini, nilai lalai) kepada rujukan bukan tetap.

Untuk mengatasi kekangan ini, anda boleh menggunakan contoh sebenar sebagai nilai lalai:

static int AVAL = 1;

void f( int &x = AVAL ) {
   // stuff
} 

int main() {
     f();       // equivalent to f(AVAL);
}
Salin selepas log masuk

Walau bagaimanapun, kaedah ini mempunyai kebolehgunaan praktikal yang terhad.

Atas ialah kandungan terperinci Bolehkah Fungsi C Mempunyai Nilai Lalai untuk Parameter Rujukan Bukan Const?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

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