Задача этой книги дать краткое и четкое изложение языка С++ в соответствии со стандар том iso/iec 14882. Она предназначена для студентов, изучающих язык «с нуля»


Потоки и типы, определенные пользователем



Download 2 Mb.
bet164/232
Sana29.03.2022
Hajmi2 Mb.
#516205
TuriЗадача
1   ...   160   161   162   163   164   165   166   167   ...   232
Bog'liq
Т. А. Павловская C C . Программирование на языке высокого уровня

Потоки и типы, определенные пользователем


Äëя ââîäa è âûâîäa â ïîòîêaõ èñïîëüçóþòñя ïåðåãðóæåííûå äëя âñåõ ñòaíäaðò- íûõ òèïîâ îïåðaöèè ÷òåíèя è èçâëå÷åíèя << è >>. Ïðè ýòîì âûáîð êîíêðåòíîé îïåðaöèè îïðåäåëяåòñя òèïîì ôaêòè÷åñêèõ ïaðaìåòðîâ. Äëя òîãî ÷òîáû ââîäèòü è âûâîäèòü âåëè÷èíû òèïîâ, îïðåäåëåííûõ ïîëüçîâaòåëåì, òðåáóåòñя ïåðåãðó- çèòü ýòè îïåðaöèè. Ýòî áèíaðíûå îïåðaöèè, ëåâûì îïåðaíäîì êîòîðûõ яâëяåòñя îáúåêò-ïîòîê, a ïðaâûì — îáúåêò, êîòîðûé òðåáóåòñя èçâëå÷ü èëè ïîìåñòèòü â ýòîò ïîòîê. Âîçâðaùaåìîå çía÷åíèå äîëæíî áûòü ññûëêîé ía ïîòîê, ÷òîáû ìîæíî áûëî îðãaíèçîâûâaòü öåïî÷êè îïåðaöèé, êaê è â ñëó÷aå ñòaíäaðòíûõ òèïîâ.
Ïóñòü, íaïðèìåð, â ïðîãðaììå îïðåäåëåí êëaññ MyClass: Class MyClass{
int x;
flOat y;

}
Äëя òîãî ÷òîáû ââîäèòü è âûâîäèòü îáúåêòû ýòîãî êëañña, òðåáóåòñя îïðåäåëèòü â êëaññå MyClass îïåðaöèè ñëåäóþùåãî âèäa:
// Âûâîä:
friend Ostream& OperatOr << (Ostream& Out, MyClass& C){ return Out << "x=" << C.x <<" y=" << C.y;
}
// Ââîä:
friend istream& OperatOr >> (istream& in, MyClass& C){ COut << "Ââåäèòå õ: ";in >> C.x;
COut << "Ââåäèòå y: ";in >> C.y; return in;
}
Ïîñëå ýòîãî â ïðîãðaììå ìîæíî èñïîëüçîâaòü îáúåêòû êëañña MyClass â îïåðaöè- яõ ââîäa è âûâîäa íaðяäó ñ âåëè÷èíaìè ñòaíäaðòíûõ òèïîâ:
inClude Class MyClass{
int x; flOat y;
publiC:
MyClass(int nx = 1, flOat ny = 0.01){x = nx; y = ny;} friend Ostream& OperatOr<< (Ostream& Out, MyClass& C){ return Out << "x=" << C.x <<" y=" << C.y;
}
friend istream& OperatOr>> (istream& in, MyClass& C){ COut << "Ââåäèòå õ: "; in >> C.x;
COut << "Ââåäèòå y: "; in >> C.y; return in;

}
};


int main(){ MyClass C;
COut << C << endl; MyClass C1(100, 100);
COut << C1 << endl;
MyClass C2;
Cin >> C2; COut << C2 << endl; return 0;
}
Ýêçåìïëяð C êëañña MyClass ñîçäaåòñя ñ ïaðaìåòðaìè êîíñòðóêòîða ïî óìîë÷a- íèþ, ïîýòîìó ía ýêðaí áóäåò âûâåäåíî:
x=1y= 0.01
Ýêçåìïëяð C1 êëañña MyClass ñîçäaåòñя ñ ïaðaìåòðaìè 100, 100:
x= 100y= 100
Ïîñëå ñîçäaíèя ýêçåìïëяða C2 áóäåò âûâåäåíî ïðèãëaøåíèå êî ââîäó x è y, a ça- òåì ââåäåííûå ñ êëaâèaòóðû çía÷åíèя áóäóò âûâåäåíû ía ýêðaí.

Download 2 Mb.

Do'stlaringiz bilan baham:
1   ...   160   161   162   163   164   165   166   167   ...   232




Ma'lumotlar bazasi mualliflik huquqi bilan himoyalangan ©hozir.org 2024
ma'muriyatiga murojaat qiling

kiriting | ro'yxatdan o'tish
    Bosh sahifa
юртда тантана
Боғда битган
Бугун юртда
Эшитганлар жилманглар
Эшитмадим деманглар
битган бодомлар
Yangiariq tumani
qitish marakazi
Raqamli texnologiyalar
ilishida muhokamadan
tasdiqqa tavsiya
tavsiya etilgan
iqtisodiyot kafedrasi
steiermarkischen landesregierung
asarlaringizni yuboring
o'zingizning asarlaringizni
Iltimos faqat
faqat o'zingizning
steierm rkischen
landesregierung fachabteilung
rkischen landesregierung
hamshira loyihasi
loyihasi mavsum
faolyatining oqibatlari
asosiy adabiyotlar
fakulteti ahborot
ahborot havfsizligi
havfsizligi kafedrasi
fanidan bo’yicha
fakulteti iqtisodiyot
boshqaruv fakulteti
chiqarishda boshqaruv
ishlab chiqarishda
iqtisodiyot fakultet
multiservis tarmoqlari
fanidan asosiy
Uzbek fanidan
mavzulari potok
asosidagi multiservis
'aliyyil a'ziym
billahil 'aliyyil
illaa billahil
quvvata illaa
falah' deganida
Kompyuter savodxonligi
bo’yicha mustaqil
'alal falah'
Hayya 'alal
'alas soloh
Hayya 'alas
mavsum boyicha


yuklab olish