|
Программирование >> Расширенная версия языка c++
delete p; освобождение памяти return Как и следовало ожидать, программа выводит на экран число 9, являющееся начальным значением переменной, на которую указывает указатель р. 2. Следующая программа инициализирует динамически размещаемый объект: Динамическое выделение памяти объектам #include <iostreain> using namespace std; class samp { int i, j; public: samp(int a, int b) { i = a; j = b; } in roduct() { return ; } J ? ..; . l.У:.. :;( int main (} ( samp *p; p = ne 6, 5); размещение объекта с инициализацией Ifdp) ( cou Обка выделения памяти\п ; return 1; cou Итог равен; p->get product () \n ; delete p; return 0; i : При размещении объекта samp автоматически вызывается его конструктор, и объекту передаются значения 6 и 5, 3. В следующей программе размещается массив целых: Простой пример использования операторов new и delete #include <iostream> using namespace std; int main () ( int *p; p = new in [5]; выделение памяти для 5 целых 124 . . Самоучтель C++ II Убедитесь, что память выделена - - iff!p) ! cout << Ошибка выделения памятиХп ; return 1; int i; for(i=0; i<5; p[i] i; for(i=0; i<5; { cout Это целое, на которое укзйщает р[ << i ]j ; cout pli] \п ; delete [] p; освобождение памяти return 0;
4. В следующей программе создается динамический массив объектов: Динамическое выделение памяти для массива объектов #include I < reani> using namespace std; class samp ( int i, j ; public: voi j (int a, int b) f i = a; j = b; } int { return } ); - samp int i ; p = new sam 01 ; размещение массива объектов cou << Ошибка выделения паь1яти\п ; return 1; for(i=0; i<10; p[i] .set ij(i, i) ; i fordO; i<10; { cou Содержо г i 1 равно: ; cout p[i] .get product ( } \n ; delete [] p; return 0;
5. В новой версии предыщей программы в нее вводится деструктор samp и теперь при освобождении памяти, обозначенной указателем р, для каждого элемента массива вызывается деструктор: Динамическое выделение памяти для массива объектов #include <iostream> * using namespace std; class samp { int i, j ; public: void set ij (int a, int b) { i = a; j b; } . ~samp() { cou Удаление та ... \n ; } in duct ( ) { return i*j; } }; : f . , . . samp int i; p = new sam dO]; размещение массива объектов if(!p) ( cou << Ошибка выделения памяти\п ; return 1;
|
© 2006 - 2024 pmbk.ru. Генерация страницы: 0.001
При копировании материалов приветствуются ссылки. |