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
684 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!

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