Студопедия Главная Случайная страница Обратная связь

Разделы: Автомобили Астрономия Биология География Дом и сад Другие языки Другое Информатика История Культура Литература Логика Математика Медицина Металлургия Механика Образование Охрана труда Педагогика Политика Право Психология Религия Риторика Социология Спорт Строительство Технология Туризм Физика Философия Финансы Химия Черчение Экология Экономика Электроника

Ініціалізація масивів об'єктів





Якщо клас містить параметризований конструктор, то масив об'єктів такого класу можна ініціалізувати. Наприклад, у наведеному нижче коді програми використовується клас demoClass і параметризований масив demoMas об'єктів цього класу, що ініціалізується конкретними значеннями.


#include < iostream> // Для потокового введення-виведення

#include < conio> // Для консольного режиму роботи

using namespace std; // Використання стандартного простору імен

 

class demoClass { // Оголошення класового типу

int a, b;

public:

demoClass(int n, int m) { a = n; b = m; }

int getAzm() { return a; }

int getBzm() { return b; }

};

 

int main ()

{

demoClass demoMas[4][2] = {

demoClass(1, 2), demoClass(3, 4),

demoClass(5, 6), demoClass(7, 8),

demoClass(9, 10), demoClass(11, 12),

demoClass(13, 14), demoClass(15, 16)

};

 

int i, j;

 

for (i=0; i< 4; i++)

for (j=0; j< 2; j++){

cout < < " demoMas[" < < i < < ", " < < j < < " ] ==> a= ";

cout < < demoMas[i][j].getAzm() < < "; b= ";

cout < < demoMas[i][j].getBzm() < < " \n";

}

 

cout< < " press any key! ";

while(! kbhit());

}

Доступ до структури можна отримати безпосередньо або через покажчик на цю структуру. Аналогічно можна звертатися і до об'єкта: безпосередньо (як в усіх попередніх прикладах) або за допомогою покажчика на об'єкт. Щоб отримати доступ до окремого члена об'єкта виключно " силами" самого об'єкта, використовують оператор " крапка". А якщо для цього слугує покажчик на цей об'єкт, необхідно використовувати оператор " стрілка" [1].

Щоб оголосити покажчик на об'єкт, використовується аналогічний синтаксис, як і у разі оголошення покажчиків на значення інших типів. У наведеному нижче коді програми створюється простий клас pClass, визначається об'єкт цього класу P_ob і оголошується покажчик на об'єкт типу pClass з іменем р. У наведеному прикладі показано, як можна безпосередньо отримати доступ до об'єкта P_ob і як використовувати для цього покажчик (у цьому випадку ми маємо справу з непрямим доступом).


#include < iostream> // Для потокового введення-виведення

#include < conio> // Для консольного режиму роботи

using namespace std; // Використання стандартного простору імен

 

class pClass { // Оголошення класового типу

int num;

public:

void setNum(int num) {num = num; }

void showNum() { cout < < " num= " < < num < < " \n"; }

};

int main ()

{

pClass P_ob, *p; // Створення об'єкта класу і покажчика на нього.

P_ob.setNum(1); // Отримуємо прямий доступ до об'єкта P_ob.

P_ob.showNum();

p = & P_ob; // Присвоюємо покажчику p адресу об'єкта P_ob.

p-> showNum(); // Отримуємо доступ до об'єкта P_ob за допомогою покажчика.

cout< < " press any key! ";

while(! kbhit());

}

Звернемо Вашу увагу на те, що адреса об'єкта P_ob отримується шляхом використання оператора посилання " & ", що цілком відповідає механізму отриманню адреси для змінних будь-якого іншого типу.

Інкрементація або декрементація покажчика відбувається так, щоб завжди вказувати на наступний або попередній елемент базового типу. Те саме відбувається і під час інкрементації або декрементації покажчика на об'єкт: він вказуватиме на наступний або попередній об'єкт. Щоби проілюструвати цей механізм, дещо модифікуємо попередню програму. Тепер замість одного об'єкта P_ob оголосимо двоелементний масив P_ob типу pClass. Звернемо Вашу увагу на те, як інкрементується та декрементується покажчик р для доступу до двох елементів цього масиву.

#include < iostream> // Для потокового введення-виведення

#include < conio> // Для консольного режиму роботи

using namespace std; // Використання стандартного простору імен

 

class pClass { // Оголошення класового типу

int num;

public:

void setNum(int num) {num = num; }

void showNum(){ cout < < " num= " < < num < < " \n"; }

};

 

int main ()

{

pClass P_ob[2], *p;

P_ob[0].setNum(10); // Прямий доступ до об'єктів

P_ob[1].setNum(20);

p = & P_ob[0]; // Отримуємо покажчик на перший елемент.

p-> showNum(); // Відображаємо значення елемента P_ob[0] за допомогою покажчика.

p++; // Переходимо до наступного об'єкта.

p-> showNum(); // Відображаємо значення елемента P_ob[1]// за допомогою покажчика.

p--; // Повертаємося до попереднього об'єкта.

p-> showNum(); // Знову відображаємо значення елемента P_ob[0].

cout< < " press any key! ";

while(! kbhit());

}2.4. Зразок виконання роботи







Дата добавления: 2014-11-10; просмотров: 1466. Нарушение авторских прав; Мы поможем в написании вашей работы!




Практические расчеты на срез и смятие При изучении темы обратите внимание на основные расчетные предпосылки и условности расчета...


Функция спроса населения на данный товар Функция спроса населения на данный товар: Qd=7-Р. Функция предложения: Qs= -5+2Р,где...


Аальтернативная стоимость. Кривая производственных возможностей В экономике Буридании есть 100 ед. труда с производительностью 4 м ткани или 2 кг мяса...


Вычисление основной дактилоскопической формулы Вычислением основной дактоформулы обычно занимается следователь. Для этого все десять пальцев разбиваются на пять пар...

Измерение следующих дефектов: ползун, выщербина, неравномерный прокат, равномерный прокат, кольцевая выработка, откол обода колеса, тонкий гребень, протёртость средней части оси Величину проката определяют с помощью вертикального движка 2 сухаря 3 шаблона 1 по кругу катания...

Неисправности автосцепки, с которыми запрещается постановка вагонов в поезд. Причины саморасцепов ЗАПРЕЩАЕТСЯ: постановка в поезда и следование в них вагонов, у которых автосцепное устройство имеет хотя бы одну из следующих неисправностей: - трещину в корпусе автосцепки, излом деталей механизма...

Понятие метода в психологии. Классификация методов психологии и их характеристика Метод – это путь, способ познания, посредством которого познается предмет науки (С...

Шов первичный, первично отсроченный, вторичный (показания) В зависимости от времени и условий наложения выделяют швы: 1) первичные...

Предпосылки, условия и движущие силы психического развития Предпосылки –это факторы. Факторы психического развития –это ведущие детерминанты развития чел. К ним относят: среду...

Анализ микросреды предприятия Анализ микросреды направлен на анализ состояния тех со­ставляющих внешней среды, с которыми предприятие нахо­дится в непосредственном взаимодействии...

Studopedia.info - Студопедия - 2014-2025 год . (0.008 сек.) русская версия | украинская версия