Подробности
По-ефективен C++ е изпълнена с прагматични, реалистични съвети, които ще използвате всеки ден.
Както Ефективен C++ преди нея, По-ефективен C++ е задължително четиво за всеки, който работи със C++.
В книгата подробно са разгледани:
– Доказани методи за подобряване на ефективността на програмите, включително задълбочени изследвания на разходите на време и пространство, свързани с отделните механизми на езика C++.
– Детайлни описания на по-сложни техники, използвани от експертите по C++, включващи placement new, виртуални конструктори, умни указатели, броене на псевдоними, класове-посредници и множествено виртуализиране.
– Примери за ефектите от обработването на изключения върху структурата и поведението на класовете и функциите в C++.
– Практическо приложение на нови механизми на езика като bool, mutable, explicit, namespace, член-шаблони, STL и други. Ако вашите компилатори все още не поддържат някой от тези механизми, Майерс ще ви покаже как да постигнете целта си и без тях.
Въведение
Основи
Съвет 1: Правете разлика между указатели и псевдоними
Съвет 2: Предпочитайте преобразуванията на типове от C++
Съвет 3: Никога на третирайте масивите полиморфично
Съвет 4: Избягвайте ненужните констртуктори по подразбиране
Оператори
Съвет 5: Внимавайте с дефинираните от потребителите
функции за преобразуване
Съвет 6: Правете разлика между префиксните и постфиксните
форми на операторите за увеличаване и намаляване.
Съвет 7: Никога не предефинирайте &&, || или ,
Съвет 8: Научете различните значения на new и delete
Изключения
Съвет 9: Използвайте деструкторите, за да предотвратите
загуба на ресурси
Съвет 10: Избягване на загуба на ресурси в конструкторите
Съвет 11: Не позволявайте на изключенията да напускат
деструкторите
Съвет 12: Научете по какво хвърлянето на изключение
се различава от подаването на параметър или
от извикването на виртуална функция
Съвет 13: Улавяйте изключения по псевдоним
Съвет 14: Използвайте спецификациите на изключения разумно
Съвет 15: Научете цената на обработването на изключения
Ефективност
Съвет 16: Не забравяйте правилото 80-20
Съвет 17: Използвайте мързеливо оценяване
Съвет 18: Амортизирайте цената на очакваните изчисления
Съвет 19: Научете произхода на временните обекти
Съвет 20: Оптимизиране на връщаните стойности
Съвет 21: Предефинирайте, за да избегнете неявното
преобразуване на типове
Съвет 22: По възможност използвайте op= вместо op
Съвет 23: Не забравяйте алтернативните библиотеки
Съвет 24: Научете цените на виртуалните функции,
множественото наследяване, виртуалните
базови класове и RTTI
Техники
Съвет 25: Виртуализиране на конструктори и на функции,
които не са членове на някакъв клас
Съвет 26: Ограничаване на броя на обектите от даден клас
Съвет 27: Изискване или забраняване на използванeто на обекти
в динамичната памет
Съвет 28: Умни указатели
Съвет 29: Броене на псевдоними
Съвет 30: Класове-посредници
Съвет 31: Създаване на функции, виртуални по отношение
на повече от един обект
Разни
Съвет 32: Програмирайте в бъдеще време
Съвет 33: Правете всички междинни класове абстрактни
Съвет 34: Научете как да комбинирате C++ със C в една програма
Съвет 35: Запознайте се със стандарта на езика
Препоръчвана литература
Реализация на auto_ptr
Индекс
Индекс на примерните класове