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



Pdf көрінісі
бет141/642
Дата30.03.2022
өлшемі3,66 Mb.
#29231
түріПрограмма
1   ...   137   138   139   140   141   142   143   144   ...   642
Байланысты:
pavlovskaia-jogargy-dengeili

#include  

fl oat f(fl oat i){

cout << "function fl oat f(fl oat i)" << endl;

return i;

}

double f(double i){

cout << "function double f(double i)" << endl;

return i*2;

}

int main(){

fl oat x = 10.09;

double у = 10.09;

cout << f(x) << endl; // f(fl oat) шақырылады 

cout << f(y) << endl; // f(double) шақырылады 

/* cout << f(10) << endl; бірмəнсіздік – 10 санын қалай 

түрлендіру керек: fl oat типіне немесе double типіне ме? 

*/

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 

модифи-


каторымен немесе сілтеме қолданумен  (мысалы, 



Достарыңызбен бөлісу:
1   ...   137   138   139   140   141   142   143   144   ...   642




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

    Басты бет