} friend ostream& operator«(o

Автор admin Вторник, 5 мая 2009 11:32

} friend ostream& operator«(ostream& os. const HasPointers& obj) { os « obj.theData->theString « “: “: for (size_t i = 0: i < obj.theData->numlnts: ++i) os « obj.theData->theInts[i] « ‘ ‘: return os: } }: int mainO { int someNums[] = {1. 2. 3. 4}: size_t someCount = sizeof someNums / sizeof someNums[0]: int someMoreNums[] = {5. 6. 7}; size_t someMoreCount = sizeof someMoreNums / sizeof someMoreNums[0]; HasPointers hlC’Hello”. someNums. someCount): HasPointers h2(“Goodbye”. someMoreNums. someMoreCount): cout « hi « endl; // Hello: 12 3 4 hi = h2: cout « hi « endl: // Goodbye: 5 6 7 } III:- Для удобства HasPointers использует класс MyData как манипулятор для работы с указателями. Когда требуется выделить дополнительную память (в результате конструирования или присваивания), в конечном счете для решения этой задачи вызывается первая функция clone. Если первый вызов оператора new завершается неудачей, автоматически генерируется исключение bad_alloc. Если неудача происходит при втором выделении памяти (для thelnts), память theString необходимо освободить — для этого и нужен блок try, перехватывающий иск


Комментарии закрыты.