Video: Loneliness 2024
Karena C ++ melewati nilai hujah, anda tidak dapat membedakan dengan konstitusi. Dalam berikut, apa yang sebenarnya diluluskan kepada maksimum () adalah nilai 2. 0 dan 0. 0. Fungsi maksimum () tidak dapat diketahui sama ada nilai-nilai ini berasal dari variabel seperti dArg atau pemalar seperti 0. 0 < maksimum double (double d1, double d2); void otherFunction () {double dArg = 2. 0; double dNonNegative = maksimum (dArg, 0. 0);
Anda
boleh mengisytiharkan argumen fungsi menjadi const. Perisytiharan sedemikian bermaksud bahawa anda tidak boleh mengubah nilai hujah dalam fungsi tersebut. Ini ditunjukkan dalam pelaksanaan maksimum maksimum (double, double):
Tugasan kepada d1 dan d2 tidak dibenarkan kerana keduanya telah diisytiharkan const dan oleh itu tidak boleh berubah.
Apa yang tidak sah adalah berikut:
// kedua fungsi ini tidak cukup berbeza untuk dibezakan maksimum dua kali ganda (double d1, double d2); dua kali ganda (const double d1, const double d2); void otherFunction () {double dArg = 2. 0; // C ++ tidak tahu mana fungsi di atas untuk memanggil double dNonNegative = maksimum (dArg, 0. 0);
Di sini C ++ tidak mempunyai cara membezakan antara kedua-dua ketika anda membuat panggilan.