|
Программирование >> Формирование пользовательского контейнера
passPtr(p); передает указатель int * функции paasPtrO *ip - 100; присваивает новое значение ip Теперь использует неявное преобразование в int * passPtr(ip); cout endl; Создает объект GCPtr, указывающий на массив из элементов типа int. GCPtr<int, 5> iap = new int[5]; Инициализирует динамический массив, for(int i=0; i < 5; i++) iap[i] = i; Выводит содержимое массива. cout Contents of iap via. array indexing.\n ; for(int i=0; i < 5; i++) cout iap[i] ; cout \n\n ; Создает итератор int GCiterator. GCPtr<int>::GCiterator itr; Теперь использует итератор для доступа к динамически размещенному массиву. cout Concents of iap via iterator.\n ; for(itr = iap.beginO; itr != iap.endO ; itr++) cout *itr ; cout \n\n ; Генерирует и теряет множество объектов, for(int i=0; 1 < 10; i++) ip = new int(i+10); Теперь вручную собирает мусор с помощью списка для GCPtr<int>. Помните, что указатели типа GCPtr<int, 5> 76 Глава не будут собраны этим вызовом. cout Requesting collection on GCPtr<int> list.Xn ; GCPtr<int>::collect(); Теперь использует указатель GCPtr, указывающий на объект типа класса. GCPtr<MyClass> ob = new MyClass(10, 20); Выводит значения с помощью перегруженного блока вывода, cout ob points to *ob endl; Смена объекта, на который указывает ob. ob = new MyClass(11. 21); cout ob now points to *ob endl; Вызов функции-члена с помощью указателя GCPtr. cout Sum is : ob->siOT() endl; Присваивание значения члену класса с помощью указателя GCPtr.. ob->val = 19.21; cout ob->val: ob->val \n\n ; cout Now work with pointers to class objects.\n ; Объявление указателя типа GCPtr на 5-элементный массив объектов типа MyClass. GCPtr<MyClass. 5> v; Размещение массива. V = new MyClass[5]; Получение итератора MyClass GCiterator. GCPtr<MyClass>::GCiterator mcltr; Рициализация массива из элементов типа MyClass. for(int i=0; i<5; i++) { v[i] = MyClass(i, 2*i); II Вывод содержимого массива из элементов MyClass с помощью индексирования. cout Cycle through array via array indexing.\n ; for(int i=0; i<5; i++) { cout v[i] ; cout \n\n ; Вывод содержимого массива из элементов MyClass с помошью итератора. cout Cycle through array through an iterator.\n ; for(mcItr = v.beginO; mcltr != v.endO; mcltr++) { cout *mcltr ; cout \n\n ; Другой способ записи предыдущего цикла. cout Cycle through array using a while loop.Xn ; mcltr - v.beginO; while (mcltr != v.endO) { cout *mcltr ; mcltr++; cout \n\n ; cout mcltr points to an array that is mcltr.sizeO objects long.Xn ; Находит количество элементов между двумя итераторами. GCytr<MyClass>: :GCiterator mcltr2 = v.endO-2; mcltr = v.beginO; cout The difference between mcltr2 and mcltr is mcltr2 - mcltr; cout \n\n ; Можно и так обрабатывать в цикле. cout Dynamically cort5>ute length of array. \n ; mcltr = V.beginO; mcltr2 = V.endO;
|
© 2006 - 2025 pmbk.ru. Генерация страницы: 0
При копировании материалов приветствуются ссылки. |