Ogohlantirish. Umumiy maxValue funksiyasi ixtiyoriy turdagi ikkita qiymatning kattasini topish uchun mo`ljallangan bo`lib, quyidagicha shartlar asosida ishlaydi:
■ The two values have the same type;
■ The two values can be compared using the >operator.
Masalan, agar siz bir qiymatni int turida, ikkinchisini esa, double turida bersangiz, kompilyatsion xatolik yuz beradi. Chunki kompilyator funksiyani chaqirishda mos turni aniqlay olmaydi. Agar siz funksiyani maxValue(Circle(1), Circle(2)) ko`rinishda chaqirsangiz, kompilyatsion xatolik yuz beradi. Chunki Circlesinfida > operatori aniqlanmagan.
Maslahat. Parametr turini belgilashda yoki dan foydalanishimiz mumkin. dan foydalangan ma’qulroq, chunki – tasviriydir. ni esa, sinf aniqlanishi bilan adashtirib yuborish mumkin.
Eslatma. Ba’zi hollarda funksiya shabloni bittadan ko`p parametrlarga ega bo`lishi mumkin. Bunday vaziyatda parametrlarni kabi, barchasini bitta uchburchak qavslar oralig`iga, vergullar bilan ajratilgan holda joylashtiriladi.
1.1-kodli ro`yxatdagi asosiy funksiya parametrlari qiymat qabul qilib oluvchi sifatida aniqlangan. Uni havola qabul qilib oladigan qilib, 1.2-kodli ro`yxatdagi kabi o`zgartirishimiz mumkin.
1.2-kodli ro`yxat. GenericMaxValuePassByReference.cpp #include