изменялось до того момента, ко

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

изменялось до того момента, когда все компоненты будут успешно созданы и инициализированы. Шаги 2 и 3 обычно оформляются в виде отдельной функции, которая часто называется done(). В следующем примере это делается для класса, содержащего две переменные-указателя: theString и thelnts: //: C01:SafeAssign.cpp // Оператор =. безопасный по отношению к исключениям #include #include // Для std::bad_alloc #iinclude using namespace std: // Класс с двумя переменными, содержащими указатели на память в куче class HasPointers { // Класс Handle для хранения данных struct MyData { const char* theString: const int* thelnts; size_t numlnts; MyData(const char* pString. const int* pints. size_t nlnts) : theString(pString), thelnts(plnts). numlnts(nlnts) {} } *theData; // Манипулятор // Функции clone и cleanup static MyData* clone(const char* otherString. const int* otherlnts. size_t nlnts){ char* newChars = new char[strlen(otherStnng)+l]: int* newlnts: try { newlnts = new int[nlnts]: } catch (bad_alloc&) { delete [] newChars: throw; } try { // В данном примере используются встроенные типы, поэт


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