Программалау оқулық Алматы, 012 Қазақстан Республикасы Білім жəне ғылым министрлігінің «Оқулық»



Pdf көрінісі
бет83/465
Дата09.01.2023
өлшемі3,66 Mb.
#60709
түріПрограмма
1   ...   79   80   81   82   83   84   85   86   ...   465
Байланысты:
аибм сплюс

*/
return 0; 
 }
Бұл сəйкессіздікті жою үшін 10 тұрақтысының типін айқын түрде 
түрлендіру керек.
Сілтеме-параметрлерді қолдану кезіндегі сəйкессіздік мысалы: егер асы-
ра жүктелетін функциялардың бірі 
int f(int a, int b) 
түрінде, ал 
екіншісі – 
int f(int a, int &b)
түрінде жарияланған болса, компиля-
тор осы функциялардың қайсысы шақырылатынын анық біле алмайды, себебі 
параметрді мəні арқылы қабылдайтын функцияны шақыру мен параметрді 
сілтеме бойынша қабылдайтын функцияны шақыру арасында синтаксистік 
айырмашылық жоқ. 
Келісім бойынша берілген аргументтерді қолдану кезіндегі сəйкессіздік 
мысалы:


88
#include
int f(int a){return a;}
int f(int a, int b = 1){return a * b;}
int main(){
cout << f(10, 2); // f(int, int) шақырылады
/* cout << f(10); Сəйкессіздік – қайсысы шақырылады: 
f(int, int) немесе f(int) ? */
return 0;
}
Төменде асыра жүктелген функцияларды сипаттау ережелері келтірілген.
□ Асыра жүктелген функциялар бір көріну аймағында орналасуы тиіс, 
əйтпесе қабаттасқан блоктардағы айнымалалар атаулары бірдей болғандықтан
бір-бірінің мəндерін өзгертіп жібереді.
□ Асыра жүктелген функциялардың келісім бойынша берілген па-
раметрлері болуы мүмкін, мұндайда бір параметрдің əртүрлі функцияларда-
ғы мəні бірдей болуы керек. Асыра жүктелген функциялардың əртүрлі 
нұсқаларында келісім бойынша берілген параметрлер саны əртүрлі болуы 
мүмкін.
□ Егер функциялар параметрлерінің сипаттамалары тек 
const 
модифи-
каторымен немесе сілтеме қолданумен  (мысалы, 
int
жəне 
const int
не-
месе 


Достарыңызбен бөлісу:
1   ...   79   80   81   82   83   84   85   86   ...   465




©emirsaba.org 2024
әкімшілігінің қараңыз

    Басты бет