«Графические программирования на языке С++»



Download 0,82 Mb.
bet19/23
Sana21.02.2022
Hajmi0,82 Mb.
#43829
1   ...   15   16   17   18   19   20   21   22   23
Bog'liq
graficheskie programmirovaniya na yazyke s

//.. . public:
operator*(const Fraction bother);
friend operator*(int n, const Fraction bfr);
friend operator*(const Fraction bfr,intn);
}
Каждая из этих функций (которые, кстати, должны быть где-нибудь описаны) работает с различными комбинациями операндов типов int и Fraction, позволяя вам записы­вать выражения следующего вида:
Fractionfractl= 1 + Fractiond, 2) + Fraction (3, 4) + 4;
Но существует более легкий способ поддержки операций с целыми числами. Что вам действительно необходимо, - это функция для преобразования целых чисел в объекты класса Fraction. Если бы такая операция использовалась, тогда от вас бы потребова­лось написание только одной версии функции operator*. В выражении, таком как следующее, компилятор преобразует число 1 в формат класса Fraction, а затем вызо­вет функцию Fraction::operator-*-, чтобы сложить две дроби.
Fractionfractl= 1 + Fractiond, 2);
Оказывается, что такую функцию преобразования легко написать - она поставляется кон­структором класса Fraction, который принимает один аргумент тина int!
Это простой конструктор и его можно эффективно использовать как встраиваемую функцию.
Fraction(int n) {set(n, 1);}
Если есть такое объявление, то все операции, объявленные дня двух объектов класса Fraction, автоматически расширяются, включая в себя операции, касающиеся объекта Fractionи целых чисел.
Функция присваивания класса (=)
Когда вы пишете класс, компилятор C++ автоматически обеспечивает вас тремя специ­альными функциями-членами. Пока я вас познакомил с двумя из них.

  • Конструктор по умолчанию. Работа автоматической версии (поставляемой компиля­тором) состоит в присваивании каждому члену инициального значения, равного 0. Необходимо отмстить, что компилятор не будет использовать этот конструктор, если вы напишете свой собственный... поэтому вам следует всегда писать свой собствен­ный конструктор по умолчанию, даже если он ничего не делает.

  • Конструктор копирования. Работа автоматической версии состоит в выполнении простого копирования всех членов исходного объекта.

  • Функция оператора присваивания (=). Это новая функция.

Функция оператора присваивания является специальной функцией, потому что компи­лятор сам се поставляет, если вы не делаете этого. Полому мы могли выполнять такие операции, как:

Download 0,82 Mb.

Do'stlaringiz bilan baham:
1   ...   15   16   17   18   19   20   21   22   23




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