Sinf(Sinf& ob)
{
cout<<”Sinf uchun nusxalash konstruktori”<
}
Sinf(const Sinf& ob)
{
cout<<”Sinf uchun nusxalash konstruktori”<
}
};
int main()
{
Sinf ob1; // Kelishuv bo’yicha konstruktor amal qiladi
Sinf ob2(ob1); // Nusxalash konstruktori amal qiladi
const Sinf ob3;
Sinf ob4(ob3); // Konstanta obyektni nusxalash
// konstruktori ishlaydi
return 0;
}
5) ҳар қандай иккита қайта юкланувчи функциялар турли хил параметрлар рўйхатига эга бўлиши керак;
6) функция–аъзолар фақат уларнинг бири статик, иккинчиси йўқлиги асосида қайта юкланиши мумкин эмас;
7) typedef – аниқлашлар қайта юклаш механизминга таъсир қилмайди, чунки улар янги турни яратмайди, улар мавжуд турларнинг синоними ҳисобланади. Масалан, қуйидаги аниқлаш –
typedef char * PSTR;
компиляторга
void Satr(char * s);
ва
void Satr(PSTR s);
кўринишдаги функция эълонларини ҳар хил деб ҳисоблашга асос бермайди ва улар қайта юкланиши мумкин эмас;
8) барча enum – турлар ҳар хил ҳисобланади ва улардан функцияларни қайта юклашда фойдаланиш мумкин;
9) массив ва кўрсаткичлар қайта юклаш нуқтаи–назаридан бир хил эълон деб қаралади. Лекин бу фикр фақат бир ўлчамли массивлар учун ўринли. Шу сабабли,
void Satr(char * s);
void Satr(char s);
кўринишидаги функцияларни қайта юклашга уриниш компиляция хатосига олиб келади.
10) Кўп ўлчамли массивларда иккинчи ва ундан кейинги ўлчамлар берилганлар турининг алоҳида бир қисми деб қаралади ва бу ҳолат қайта юклаш учун асос бўлади. Қуйидаги функциялар қайта юкланиши мумкин:
void Satr(char s[]);
void Satr(char s[][5]);
Қайта юкланувчи функциялар эълон қилинганда компилятор бу функцияларнинг кўриниш соҳаларини таҳлил қилади. Масалан, ҳосилавий синфда таянч синфдаги функция–аъзо билан бир номдаги функция эълон қилинган бўлса, у таянч синф функциясини яширади ва компилятор бу функцияларни қайта юклаш ўрнига қайта аниқлайди, чунки улар турли кўриниш соҳаларига эга. Худди шундай компилятор бошқа кўриниш соҳаларини ҳам кузатиб боради. Агар функция файл кўриниши соҳасида эълон қилинган ва у блокда (локал) эълон қилинган функция билан битта кўриниш соҳасида бўлса ҳам улар компилятор томонидан қайта юкланмайди. Функциянинг локал эълони унинг глобал эълонини қоплайди (яширади). Масалан:
Do'stlaringiz bilan baham: |