Выгоды
Теперь, рассмотрев характеристики объектов и некоторые технологии анализа и проектирования, можно вкратце резюмировать выгоды объектно-ориентированной разработки. Ваш проект должен
• Грамотно использовать объектно-ориентированные конструкции C++. Широко используйте свои классы и не забывайте про наследование.
• Создавать по возможности самодостаточные классы — они будут хорошими кандидатами на повторное использование.
• Быть понятным. Самая большая выгода объектно-ориентированного проектирования — в представлении проблемы в легкодоступном, тем кто понимает, виде.
Захват ресурсов при инициализации ,
Одно из достоинств объектно-ориентированного программирования, часто упускаемое из вида, — это концепция захвата ресурсов при инициализации (Resource Acquisition Is Initialization), принадлежащая Бьерну Страуструпу. Ссылки на нее вам будут встречаться далее на протяжении всей книги. Поскольку это преимущество относится к объектно-ориентированному проектированию, здесь следует о нем кратко упомянуть.
Конструкторы в C++ вызываются при создании объекта, а деструкторы — при его удалении, поскольку он становится более не нужен. Объекты, требующие ресурсов, такие как файлы, сберкнижки или блоки памяти должны успешно захватывать нужные ресурсы еще до того, как их можно будет считать действительно созданными.
Давайте, например, перепишем класс BankAccount из раздела "Простое наследование" и заменим закрытый элемент данных transactions типа класса
TransactionRegister указателем на Класс TransactionRegister, память ДЛЯ
которого выделяется динамически при создании объекта BankAccount:
class BankAccount ( public:
BankAccount(Balance initialBalance);
virtual ~BankAccount(void) ;
void deposit(Amount depositAmount);
void withdraw(Amount withdrawalAmount); '
Balance currentBalance(void) ;
private:
TransactionRegister •''transactions;