С++ тілінде сілтемелерді қолдану


Жұмыс түрі: Реферат
Тегін: Антиплагиат
Көлемі: 10 бет
Таңдаулыға:
Жоспар
І. Кіріспе
ІІ. Негізгі бөлім.
- С++ тілінде сілтемелерді қолдану, сілтеме жалған ат болып
табылады
2) Көрсеткіш ретінде сілтемені қолдану
3) Программалардың ішіндегі сілтемелерді түсіндіруге
арналған комментарийлерді қолдану
4) Сілтемелермен жүмыс істеу ережелері
ІІІ. Қорытынды
Кіріспе
Дербес компютердің жадысы ақпаратты сақтауға арналған ұяшықтардың жиынтығын әрқайсысының жеке номері бар байтты береді. Бұл номерлер адресс деп аталады. Олар жадының кез-келген байтына баруға мүмкіндік береді. C++ тілінің программисттің құзырына динамикалық жадының басқарудың қолайлы құралын ұсынады, ол сілтемелер деп аталады. Сілтемелер- бұл өзінің мәні ретінде жадының байтының адресін сақтайды. Сілтемелердің көмегімен динамикалық жадыға С++ тілінде анықталған мәліметтердің кез- келген типін орнластыруға болады. Олардың кейбіреулері (Byte, char, short int, boolean) жадыдан 1 байт орын алады, ал қалғандары аралас. Сондықтан, көрсеткіштер мәліметтердің тек алғашқы байтының орнын анықтайды.
Cілтеме сөзі сілтемені жекеше көрсеткендегі атау сөзінің синонимі іспеттес. Сілтемені әрдайым аталып шығатын көрсеткіш ретінде қарастыруға болады. Сілтемені көрсететін формат:
тип & атау:
мұндағы тип- сілтеменің нұсқайтын мөлшерінің типі; &-бұдан соң келетін атау ауыспалы сілтеме типінің атымен келетін сілтеме операторы, мысалы:
int kol;
int& pal= kol; // pal сілтемесі kol үшін альтернативті аты
const char & CR= ‘/n’; //тұрақты сілтеме
Мына ережелерді есте сақтаңыз:
- Ауыспалы сілтеме оны суреттегенде ол функция параметрі болған кездегі басқа және extern деп жазылған немесе кластық деректер атауына сілтеме жасалған кездегі басқа жағдайларда оның инициалдануы тиіс.
- Инициалданғаннан соң сілтемеге басқа ауыспалы тиесілі болуы мүмкін емес.
- Сілтеме типі сілтемеленелетін мөлшер типіне сәйкес болуы тиіс.
- Сілтемелерге нұсқағыш анықтауға, сілтемелер массиві мен сілтеме үстіне сілтеме жасауға рұқсат етілмейді.
Көбінесе сілтемелер функциялар параметрлері және функциялар қайтаратын типтер түрінде қолданылады. Сілтемелер функцияларда адреспен берілетін айнымалыларды, адрестерді жою операциясынсыз қолдануға мүмкіндік береді, бұл программаның оқылуын жақсартады.
Сілтеменің нұсқағыштан айырмашылығы жадыда қосымша кеңістікті иеленбейді және жай ғана басқа мөлшердің атауы болып табылады. Сілтемеге операция жасау өзі сілтенетін мөлшердің өзгеруіне әкеп соқтырады.
1. С++ тілінде сілтемелерді қолдану.
Сілтемелерді қолдану С тілінен мұрагерлікпен қалды. Параметрлердің өзгеру процесін жеңілдету үшін, С++ тілі сілтеме деген түсінік енгізді. Сіздің прогрммаңыз өзгеріске мәнін беру үшін қолданылады. Келесі негізгі концепцияларды білу қажет:
- Ауыспалы типтен кейін амперсандты (&) орналастырысымен, хабарлама және инициализация сілтемесі үшін программа ішінде ауыспалыны хабарлайды және жалған атты белгілеуге қосып алу операторы қолданылады, мысалы:
int& alias_name = variable', .
- Сіздің программаңыз сілтемені көрсеткіш ретінде жібере алады, ал функция болса, сілтемені қолданбай ақ сәйкес көрсеткіштердің мағынасын өзгерте алады.
- Амперсендты (&) орналастыра, көрсеткіш типінен кейін, функция ішінде сізге көрсеткішті сілтеме ретінде хабарлаған дұрыс.
Көргеніміздей, функция ішінде сілтемелерді қолдану көрсеткіш мағынасының өзгеруін жеңілдетеді.
Сілтеме жалған ат болып табылады.
Прогрммада сілтеме С++ жалған атты (немесе екінші атты) құруға мүмкіндік береді. Көрсеткіш типінен кейін программа ішінде сілтемені хабарлау үшін амперсанд (&) белгісін көрсетесіз. Төменде көрсетілгендей, сілтемені хабарлауда, сіз оған ауыспалы, бұл сілтемеге жалған ат болып келетін жедел түрде анықтауыңыз қажет.
int& alias_name = variable; //---> Сілтемеге хабарлама
Сілтеме хабарланғаннан кейін біздің программамыз ауыспалыны немесе сілтемені қолдануы мумкін:
alias_name=1001;
variable = 1001;
Келесі SHOW_REF. CPP прогрмасы alias_name атымен сілтеме құрады және number ауыспалы жалған атты қосып алады. Келесі прогрмма сілтеме ретінде де қолданылады:
#include <iostream. h>
void main(void)
{
intnumber=501;
int& alias_name = number; // Создать ссылку
cout << "Переменная number содержит
" <<
number << endl;
cout << "Псевдоним для number содержит " << alias_name << endl;
alias_name = alias_name + 500;
cout << "Переменная number содержит " << number << endl;
cout << "Псевдоним для number содержит " << alias_name << endl;
}
Көргендей alias_name сілтемесіне программа 500 есе көбейтеді. Қорытындысында number сәйкес ауыспалыға да программа 500 қосады. Оған сәйкес сілтеме жалған ат немесе екінші ат болып қызмет етеді. Компиляциядан өткізіп және прогрмманы жібергеннен кейін, сіздің экранда келесілер шығады:
С:\> SHOW_REF <ENTER>
Переменная number содержит 501
Псевдоним для number содержит 501
Переменная number содержит 1001
Псевдоним для number содержит 1001
Осы көрсетілгеннен кейін, сілтемені қолданғаннан кейін түсінуге қиындықтар туады. Бірақ сіздің көретініңіз, функцияның ішіндегі көрсеткіш өзгерісін сілтеме қолданғаннан кейін едәуір жеңілдетеді.
Сілтемеге хабарлама
С++ сілтемесі көрсеткішке көңіл бөлетін программа өзі жалған атқа (екінші атқа) ұсынады. Сілтемеге хабарлау үшін ауыспалы типінен кейін жедел түрде амперсанд (&) қою керек, айнымалылар аты және ол сілтемеге жалған ат болып табылады:
float& salary_alias = salary;
2. Көрсеткіш ретінде сілтемені қолдану
Сілтеменің негізгі функйиясының ішінде көрсеткіштердің өзгеру процесінің жеңілдетуінен тұрады. Number айнымалысы number_ alias аты бар REFERENC. CPP программасы қосып алады. 1001 мағыналы айнымалыны қосып алатын change_value функцияны айнымалыға программа сілтеме жібереді:
#include <iostream. h>
void change_value(int &alias)
{
alias = 1001;
}void main(void)
{
int number;
int& number_alias = number;
change_value(number_alias) ;
out << "Переменная number содержит " << number << endl;
}
Өзіміз көріп тұрғандай, программа сілтемеге change_value функциясын береді. Егер біз функция хабарламасын көргенде, сілтеменің int белгісінің типі бойынша alias параметрі change_value хабарлайды.
void change_value(int& alias)
Ішкі change_value функциясы көрсеткіштің көмегісіз параметрдің белгісін өзгерте аламыз. Қорыта келгенде (*) жұлдызша белгісі қолданылмайды және ыункцияның ішкі операциясын түсінуге жеңіл болады.
3. Программалардың ішіндегі сілтемелерді түсіндіруге арналған комментарийлерді қолдану.
Көбінесе С++ программистері с программа тілімен таныс. Олар параметрлердің белгілерін өзгертпеуден бұрын функцияның ішкі көрсеткіштерін үнемі қолданып үйренген. Қорытындысында, егер программисттер сілтемені қолдануға байланысты функцияның ішкі көрсеткішін көрмесе, олар параметрдің белгілерінің өзгермеуі не үлестерін қосады. Осы сәйкес қателіктерді болдырмау үшін функцияның ішіндегі және функцияға дейінгі бірнеше комментарияларды орналастыруды ұмытпауымыз керек. Бұлар сілтемелердің көмегімен параметрлерді өзгертеді. Мұндай жағдайда С++ программисттері біздің функциямыздың жұмысын жақсы түсінетін боламыз.
Екінші мысалды қарастырайық.
Екі мәннің орнын ауыстыру үшін жылжымалы нүктесі бар төменгі функцияны қолданамыз:
void swap_values(float *a, float *b)
{
floattemp;
temp=*a;
*a=*b;
*b=temp;
}
Көріп отырғанымыздай, функция ауыспалы нұсқағыштарды, ауыспалы нұсқағыш еместер мен комбинация жасайды. Келесі SWAP_REF. CPP программасы функцияны қарапайым ету үшін жылжымалы нүктесі бар мәнге сілтемені пайдаланамыз:
#include <iostream. h>
void swap_values(float& a, float& b)
{ float temp;
temp = a;
a = b;
b = temp;
}void main(void)
{ float big = 1. 0;
float small = 0. 1;
float& big_alias = big;
float& small_alias = small;
swap_values(big_alias, small_alias) ;
cout << "Big содержит " << big << endl;
cout << "Small содержит " << small << endl;
}
Осы жерде swap_values функциясын түсіну жеңілірек, алайда біздің программамыз енді екі қосымша атауға ие (ссылки big_alias и small_alias), біз мұны қадағалап отырмыз.
4. Сілтемелермен жүмыс істеу ережелері
Сілтеме ауыспалы емес. Сілттемеге бір рет мән бере отырып, біз енді оны өзгерте алмаймыз. Сонымен бірге нұсқағыштардан басқа сілтемелердің үстіне біз төмендегідей операцияларды жасай аламыз:
- С++ оператор адресін қолдана отырып, біз сілтеме адресін ала алмаймыз.
- С++ салыстыру операторларымен қолдана отырып, біз сілтемелер мәндерін салыстыра аламаймыз.
- Біз сілтемелер үстінен арифметикалық операциялар орындай алмаймыз, мысалы ығысуды қосу секілді.
- Біз сілтемені өзгерте алмаймыз.
С++ программалауды нысанды бағдарлауды қолдану арқылы біз сілтемелерге қайта ораламыз.
Функция параметрлерін өзгертуге арналған сілтемелерді қолдану.
Біздің прогрммаларымыз нұсқағыштың көмегімен функцияның ішкі параметрлік мәндерән өзгерте алатынымызға көз жеткіземіз. Параметрді өзгерту үшін біз функция адресіне беруіміз тиіс. Параметр адресін алу үшін С++ (&) адрес операторын қолданамыз. Өз кезегінде функция ауыспалы нұсқағышты пайдаланады(бұл адрес жадысында сақталады) . Ауыспалы нұсқағышты функция ішін кіргізу үшін параметр атауын жұлдызшамен (*) белгілейміз. Параметр мәнін функция ішінде өзгерту немесе қолдану үшін осы параметр атына салынған жолдауды С++ (*) операторымен белгілейміз.
Өкінішке орай, функция ішіндегі көптеген операциялар ауыспалы нұсқағышты немесе ауыспалы нұсқағыш емес арқылы комбинация құрайды. С++ сілтемесі функция параметрлерінің өзгеру процесін жеңілдетеді, себебі олар ауыспалы нұсқағышты ауыспалы нұсқағыш емеспен араластыру арқылы операторлар құтылады.
... жалғасы- Іс жүргізу
- Автоматтандыру, Техника
- Алғашқы әскери дайындық
- Астрономия
- Ауыл шаруашылығы
- Банк ісі
- Бизнесті бағалау
- Биология
- Бухгалтерлік іс
- Валеология
- Ветеринария
- География
- Геология, Геофизика, Геодезия
- Дін
- Ет, сүт, шарап өнімдері
- Жалпы тарих
- Жер кадастрі, Жылжымайтын мүлік
- Журналистика
- Информатика
- Кеден ісі
- Маркетинг
- Математика, Геометрия
- Медицина
- Мемлекеттік басқару
- Менеджмент
- Мұнай, Газ
- Мұрағат ісі
- Мәдениеттану
- ОБЖ (Основы безопасности жизнедеятельности)
- Педагогика
- Полиграфия
- Психология
- Салық
- Саясаттану
- Сақтандыру
- Сертификаттау, стандарттау
- Социология, Демография
- Спорт
- Статистика
- Тілтану, Филология
- Тарихи тұлғалар
- Тау-кен ісі
- Транспорт
- Туризм
- Физика
- Философия
- Халықаралық қатынастар
- Химия
- Экология, Қоршаған ортаны қорғау
- Экономика
- Экономикалық география
- Электротехника
- Қазақстан тарихы
- Қаржы
- Құрылыс
- Құқық, Криминалистика
- Әдебиет
- Өнер, музыка
- Өнеркәсіп, Өндіріс
Қазақ тілінде жазылған рефераттар, курстық жұмыстар, дипломдық жұмыстар бойынша біздің қор #1 болып табылады.

Ақпарат
Қосымша
Email: info@stud.kz