русс | укр

Языки программирования

ПаскальСиАссемблерJavaMatlabPhpHtmlJavaScriptCSSC#DelphiТурбо Пролог

Компьютерные сетиСистемное программное обеспечениеИнформационные технологииПрограммирование

Все о программировании


Linux Unix Алгоритмические языки Аналоговые и гибридные вычислительные устройства Архитектура микроконтроллеров Введение в разработку распределенных информационных систем Введение в численные методы Дискретная математика Информационное обслуживание пользователей Информация и моделирование в управлении производством Компьютерная графика Математическое и компьютерное моделирование Моделирование Нейрокомпьютеры Проектирование программ диагностики компьютерных систем и сетей Проектирование системных программ Системы счисления Теория статистики Теория оптимизации Уроки AutoCAD 3D Уроки базы данных Access Уроки Orcad Цифровые автоматы Шпаргалки по компьютеру Шпаргалки по программированию Экспертные системы Элементы теории информации

Конструктор класса


Дата добавления: 2015-07-09; просмотров: 547; Нарушение авторских прав


Теперь, когда наш данные надёжно спрятаны с помощью

спецификатора privatе, попробуем их проинициализировать:

 

Vector a = {0, 0, 0};

Но тут компилятор выдаст ошибку: Что же делать?. Получается, что у нас есть доступ к этим переменным через showVector , а как же задать этим переменным начальные значения?

Если вы попытаетесь следующий способ:

 

class Vector

{

private:

int x=0;

int y=0;

int z=0;

 

То конечно же компилятор и тут выдаст ошибку, так как при определении класса память не выделяется.

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

Конструктор - это обычная функция, только в ней нет возвращаемого значения. Имя конструктора совпадает с именем класса. Конструктор должен располагаться в блоке public.

 

class Vector

{

private:

int x;

int y;

int z;

public:

Vector () : x(0),y(0),z(0) //КОНТСТРУКТОР

{}

Vector (int vx,int vy,int vz) : x(vx),y(vy),z(vz) //ИНИЦИАЛИЗАЦИЯ ПЕРЕМЕННЫХ

{}

void showVector()

{

cout<<x<<":"<<y<<":"<<z<<"";

}

void showProizVector()

{

cout<<x+y+z<<"";

}

 

Vector operator+(Vector)const;

Vector operator%(Vector)const;

Vector operator*(Vector)const;

double alpha();

};

 

Конструктор вызывается при создании объектов класса:

 

Vector a, b, c;

Здесь для обоих объектов a, b, c вызывается конструктор.

Возможна и такая форма записи:

 

Vector a(), b();

Здесь как бы указывается, что при создании a, b и c вызывается функция (конструктор).

Кстати! Конструкторы вызываются не только для пользовательских типов данных, но и для стандартных. Например, при определении переменной типа char вызывается соответствующий конструктор. При этом данный конструктор выделяет память под переменную - один байт.





<== предыдущая лекция | следующая лекция ==>
Сокрытие данных | Перегруженные функции


Карта сайта Карта сайта укр


Уроки php mysql Программирование

Онлайн система счисления Калькулятор онлайн обычный Инженерный калькулятор онлайн Замена русских букв на английские для вебмастеров Замена русских букв на английские

Аппаратное и программное обеспечение Графика и компьютерная сфера Интегрированная геоинформационная система Интернет Компьютер Комплектующие компьютера Лекции Методы и средства измерений неэлектрических величин Обслуживание компьютерных и периферийных устройств Операционные системы Параллельное программирование Проектирование электронных средств Периферийные устройства Полезные ресурсы для программистов Программы для программистов Статьи для программистов Cтруктура и организация данных


 


Не нашли то, что искали? Google вам в помощь!

 
 

© life-prog.ru При использовании материалов прямая ссылка на сайт обязательна.

Генерация страницы за: 0.208 сек.