C++ за 21 день седьмое издание



Download 1,38 Mb.
bet224/437
Sana22.02.2022
Hajmi1,38 Mb.
#89455
TuriРеферат
1   ...   220   221   222   223   224   225   226   227   ...   437
Bog'liq
word1

MyString Hello("Hello ");


MyString World("World");


MyString CPP(" of C++");


MyString sayHello(Hello + World + CPP); // оператор +, конструктор копий


MyString sayHelloAgain ("overwrite this");


sayHelloAgain = Hello + World + CPP; // оператор +, конструктор копий,


// оператор присвоения копии =

Это простая интуитивно понятная конструкция, конкатенирующая три строки с ис­ пользованием бинарного оператора суммы (+), который создается так:


MyString operator+ (const MyString& AddThis)

{
MyString NewString;




if (AddThis.Buffer != NULL)

{
// копирование в NewString


}
return NewString; // возвращение копии по значению, вызов




// конструктора копий
}



  1. этого оператора суммы (+), облегчающего конкатенацию за счет использования ин­ туитивно понятных выражений, также есть потенциальная возможность создать проблемы производительности. Создание объекта s a y H e llo требует дважды выполнить оператор суммы; в результате выполнения каждого оператора + создается временная копия, по­ скольку класс M y S trin g возвращается по значению, вызывая таким образом выполнение конструктора копий. Конструктор копий осущ ествляет глубокое копирование во времен­ ное значение, которое не существует после завершения выражения. Таким образом, это выражение приводит к созданию временных копий (г-значений), которые не нужны после заверш ения выражения, а следовательно, являются узким местом производительности, созданным особенностями языка C++. По крайней мере, до недавнего времени.

Теперь эта проблема наконец решена. Компилятор языка С++11 распознает временные объекты и использует конструктор перемещения или оператор присваивания при переме­ щении, если вы предоставите их.





Download 1,38 Mb.

Do'stlaringiz bilan baham:
1   ...   220   221   222   223   224   225   226   227   ...   437




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