Можно создавать массив объектов так же, как и массивы данных других типов

. Массивы объектов

Можно создавать массив объектов так же, как и массивы данных других типов. Если класс определяет конструктор с параметрами, то можно инициализировать каждый объект массива путем указания списка инициализации как для массива другого типа. Однако точная форма списка инициализации будет определяться числом параметров конструктора.

имя_класса имя массива [кол-во]={имя_класс(параметры), имя_класса(параметры)…}

Для создания неинициализированных массивов необходимо иметь конструктор без параметров. Для конструкторов с одним параметром существует упрощенная форма:

имя_класса имя массива[кол-во]={параметр1, параметр2,…}

 

Вопрос 23. Указатели на объекты

В c++ получить доступ к объекты можно используя указатель на объект.

class_name ob, *p; p=&ob; p->show_num();

При увеличении указателя на 1 происходит «смещение на одну переменную».

class_name ob[2], *p;

ob[0].set_num(1);

ob[0].set_num(2);

p=&ob[0];

p++;

p->show_num() //выведется 2.

 


Каждая нестатическая функция-элемент имеет доступ к объекту, для которого вызвана, через ключевое слово this. Типом this является: тип_класса *.Всякий раз, когда вызывается функция-член, автоматически передается указатель на объект, вызывающий данную функцию. Можно получить доступ к этому указателю, используя this.

classcl{…….; intget_i() {returnthis->i;}

Т.к. функции-элементы могут обращаться ко всем элементам класса просто по имени, в основном указатель this используется для возврата указателя (returnthis) или ссылки (return *this) на подразумеваемый объект.

 


Ссылка на основную публикацию
Adblock detector