Барномасози бо синфхо icon

Барномасози бо синфхо

НазваниеБарномасози бо синфхо
Дата конвертации14.07.2013
Размер33.43 Kb.
ТипДокументы

Барномасози бо синфхо

  • печать

  • e-mail

Забони C++ дар асоси ба забони С илова кардани якчанд навоварихо сохта шудааст. Яке аз навоварихои мухимтарин ин сохтани синф (class, класс) ва истифодаи фаъолонаи он дар рафти эчоди барнома мебошад. Синф ин ифодаи ягон объекти олами вокеи мебошад. Аз сохтор (structure) то синф як кадам аст, сохтор дар худ хамчун аъзо функсияро дарбар намегирад. Ва баръакс, синф монанд аст ба сохторе, ки дар ифодаи худ хамчун аъзо ягон функсияро низ дорад.

Сохтор - услубест барои нигох доштани якчанд тагйирёбандахо зери як ном. Синф бошад зери як ном натанхо тагйирёбандахо, балки якчанд функсияхоро низ нигох медорад. Гояи асосии истифодаи синфхо ин сохтани барномахои калон дар асоси пайваст кардани кисмхои тому муштараки код. Синф бояд дар худ чунин функсияву тагйирёбандахоро дошта бошад, ки онхо барои амал кардани синф кофи бошанд ва синф бояд, ки ба ягон чизи бегона зарурият надошта бошад. Албатта, зарурият ба маълумоти ибтидои пайдо шуданаш мумкин аст, лекин кабули маълумоти ибтидои набояд тагйирёбанда ё функсияи беруниро талаб кунад. Чунин хусусияти синфхо аз нав истифода бурдани хамон як кисми кодро соддатар мекунад.

Тарзи сохтани синфхо душвор нест. Якум, калимаи махсуси class ва номи синфро менависанд. Баъд, кафси фигурави {-ро навиштан зарур аст. Пеш аз муайян кардани тагйирёбандахо, дарачаи махдудияти тагйирёбандахоро (permission level) нишон додан зарур аст. Се дарачаи махдудият мавчуд аст: умуми (public), хифзшуда (protected), пушида (private). Тагйирёбанда ва функсияхое, ки хамчун умуми эълон шудаанд аз дилхох кисми программа дастрас мебошанд. Тагйирёбанда ва функсияхое, ки хамчун хифзшуда эълон шудаанд факат аз дохили синф ва синфхои фаръии он дастрас мебошанд. Тагйирёбанда ва функсияхое, ки хамчун хусуси эълон шудаанд факат аз дохили синф дастрас мебошанд ва хатто аз синфхои фаръи онхо дастнорасанд. Тарзи муайян кардани дарачаи махдудият чунин аст: калимаи махсуси дарачаи махдудиятро муайянкунанда (public, protected ё private) навишта мешавад ва баъд рамзи дунукта ( : ). Сипас, тагйирёбандахои гуногун ва функсияхо (одатан, факат тимсоли функсияхо) навишта мешаванд. Дар охир, кафси фигурави } ва нуктавергул ( ; ) навишта мешаванд. Яъне:

class ном {
private:
тагйирёбандахо_ва_функсияхо;
protected:
тагйирёбандахо_ва_функсияхо;
public:
тагйирёбандахо_ва_функсияхо;
};

Синф хатман ду функсияро бояд дарбар гирад: конструктор (constuctor) ва деструктор (destructor). Тарзи эълони онхо чунин аст, номи класс номи конструктор мешавад ва номи класс бо рамзи тилда дар пеши он номи деструктор мешавад. Масалан, агар номи класс CStudent бошад, номи функсия-конструктор низ CStudent ва номи функсия-деструктор ~CStudent мешаванд. Максади асоси аз мавчуд будани конструктор ин ба тагйирёбандахо бахшидани киматхои аввала мебошад. Максади асоси аз мавчуд будани деструктор ин кори синфро ба итмом расонидан мебошад, ба мисоли озод кардани хотираи ба тагйирёбандахо чудошуда, пушидани файлхо ва гайра. Функсия-конструктор як маротиба хангоми эълон намудани намояндаи синф ичро карда мешавад. Функсия-деструктор як маротиба хангоми хангоми гум шудани зарурият ба намояндаи синф ичро карда мешавад, яъне хангоми ба итмом расидани барнома ё ки функсияе, ки дар он намояндаи синф эълон шуда буд, ё ки хангоми озод кардани кисми хотираи ба намоянда чудошуда. Дар хотир нигох доштан зарур аст, ки на конструктор ва на деструктор ягон кимат бознамегардонанд. Ин маънои онро дорад, ки кушиши бозгардонидани кимат аз ин функсияхо хатоги аст.

Тарзи муайян кардани кори функсияи дар синф эълоншуда берун аз синф чунин аст. Аввал намуди кимати аз функсия бозгардонидашаванда навишта мешавад, баъд номи синф, дуто рамзи дунукта, номи функсия ва аргументхои он навишта мешаванд. Ва дар кафсхои фигурави кори функсия муайян карда мешавад:

намуд Синф::Функсия(Аргументхо) {
операторхо;
}

Ин рафтор ба компилятор мефахмонад, ки функсия аъзои синф аст.

Тарики эълон кардани намояндаи синф ба эълони тагйирёбандахо монанд аст:

Синф Намоянда;

Имконпазир аст, ки ишоракунак ба намояндаи синф сохта шавад. Барои ин, ба мисли пештара, номи синф, ситорача (*) ва номи ишоракунакро навиштан зарур аст:

Синф *Ишоракунак_ба_Намоянда;

Албатта, чудо кардани хотира ба воситаи оператори new низ набояд аз хотир барояд. Ба монанди сохторхо, барои бо аъзохои намояндаи класс кардан номи ишоракунак ва оператори -> истифода бурда мешаванд.

Як мисол меорем:

//namuna33.cpp
using namespace std;
#include
class CSana {
public:
void inSana(int s=1900, int m=1, int r=1);
void inSol(int s=1900);
void inMoh(int m=1);
void inRuz(int r=1);
void outSana();
int outSol();
int outMoh();
int outRuz();
private:
int sol; // >=1900
int moh; // 1-12
int ruz; // 1-31
};
void CSana::inSana(int s, int m, int r) {
sol=(s>=1900)?s:1900;
moh=(m>=1 && m<=12)?m:1;
ruz=(r>=1 && r<=31)?r:1;
};
void CSana::inSol(int s) {
sol=(s>=1900)?s:1900;
}
void CSana::inMoh(int m) {
moh=(m>=1 && m<=12)?m:1;
}
void CSana::inRuz(int r) {
ruz=(r>=1 && r<=31)?r:1;
}
void CSana::outSana() {
cout<<(ruz<10?"0":"")< <<(moh<10?"0":"")< }
int CSana::outSol() {
return sol;
}
int CSana::outMoh() {
return moh;
}
int CSana::outRuz() {
return ruz;
}
int main() {
CSana p, *ps;
int s=1976, m=5, r=10;
p.inSol(1976);
p.inMoh(5);
p.inRuz(10);
ps=new CSana;
ps->inSana(s,m,r);
p.outSana();
cout< cout<
outRuz()<<"/"<
outMoh()<<"/"<
outSol()< return 0;
}

Дар мисоли мо номи синф CSana аст ва p намояндаи ин синф ва ps ишоракунак ба намояндаи синфи CSana мебошанд.

САВОЛХО БАРОИ МУСТАХКАМКУНИ 
1. Тарзи муайян кардани синф чи гуна аст? 
2. Синф ва сохторро мукоиса кунед. 
3. Вазифаи конструктор ва деструкторро фахмонида дихед. 
4. Тарзи муайян кардани кори функсияи дар синф эълоншуда берун аз синф чи гуна аст?




Похожие:

Барномасози бо синфхо iconМақсади ин мақола нишон додани он, ки бо тарзи кушоди барномасозӣ низ фоидаи пулӣ гирифтан мумкин аст
Мақсади ин мақола – нишон додани он, ки бо тарзи кушоди барномасозӣ низ фоидаи пулӣ гирифтан мумкин аст
Барномасози бо синфхо iconОдатан барномасозони мо барои заруриятҳои ҷудогонаи мизоҷони алоҳида барнома месозанд
Дар мақола таҳлили яке аз тарзҳои паҳнгаштаи офаридани нармафзор (software) тарзи пӯшида (proprietary), инчунин баёни тарзи кушоди...
Барномасози бо синфхо iconМафҳуми алгоритм яке аз мафҳумҳои асосии барномасозӣ аст. Алгоритм ин пайдарпаии фармонҳо ба иҷрокунанда, ки дар натиҷаи иҷрои ин пайдарпаӣ иҷрокунанда масъалаи гузошташударо ҳал мекунад
Алгоритм дар забони расмие, ки ба гуногунфаҳмӣ роҳ намедиҳад, навишта мешавад. Иҷрокунанда – одам, компютер, дастгоҳи автоматӣ ва...
Разместите кнопку на своём сайте:
Документы


База данных защищена авторским правом ©cl.rushkolnik.ru 2000-2013
При копировании материала обязательно указание активной ссылки открытой для индексации.
обратиться к администрации
Документы