Студопедия

КАТЕГОРИИ:


Архитектура-(3434)Астрономия-(809)Биология-(7483)Биотехнологии-(1457)Военное дело-(14632)Высокие технологии-(1363)География-(913)Геология-(1438)Государство-(451)Демография-(1065)Дом-(47672)Журналистика и СМИ-(912)Изобретательство-(14524)Иностранные языки-(4268)Информатика-(17799)Искусство-(1338)История-(13644)Компьютеры-(11121)Косметика-(55)Кулинария-(373)Культура-(8427)Лингвистика-(374)Литература-(1642)Маркетинг-(23702)Математика-(16968)Машиностроение-(1700)Медицина-(12668)Менеджмент-(24684)Механика-(15423)Науковедение-(506)Образование-(11852)Охрана труда-(3308)Педагогика-(5571)Полиграфия-(1312)Политика-(7869)Право-(5454)Приборостроение-(1369)Программирование-(2801)Производство-(97182)Промышленность-(8706)Психология-(18388)Религия-(3217)Связь-(10668)Сельское хозяйство-(299)Социология-(6455)Спорт-(42831)Строительство-(4793)Торговля-(5050)Транспорт-(2929)Туризм-(1568)Физика-(3942)Философия-(17015)Финансы-(26596)Химия-(22929)Экология-(12095)Экономика-(9961)Электроника-(8441)Электротехника-(4623)Энергетика-(12629)Юриспруденция-(1492)Ядерная техника-(1748)

Перегруженные конструкторы

Пример

Важно

Пример

Новая информация

Пример

#include<iostream.h >class Digit{public: int a;};void main(){ Digit z; //доступ к переменной класса Digit через точку z.a=3;}

Здесь всё стандартно вы к этому уже должны были привыкнуть. Привыкли? Тогда продолжаем!

Указатель может указывать не только на встроенный тип (например на int или float), но и на тип определенный пользователем.Тип определенный пользователем - например структура, класс. В этом случае для доступа к членам через указатель необходимо использовать оператор стрелка (->).Не ищите его на клавиатуре его там нет!Это комбинация - и > на клавиатуре.

// В этом примере показывается работа через оператор ->// Есть класс Example в нем 1 переменная и 2 функции #include<iostream.h > class Example{public: int num; //Функция для установки значения void Set(int val){ num=val; } //Функция для показа значения void Show();}; void Example::Show(){ cout<<num;} void main(){ // Итак создаются обьект класса Example и указатель на этот класс Example ex,*ptr; // Непосредственная работа через обьект класса ex.Set(1); ex.Show(); // Присвоение адреса ptr адреса ex ptr=&ex; // Доступ с помощью Указателя ptr->Show();}

Здесь ключевой момент состоит в том что адрес объекта получен с использованием оператора взятия адреса &,точно так же, как берется адрес переменной любого типа.

Итак запомните если вы работаете с обьектом класса необходимо использовать оператор " точка " (.),если же работа происходит через указатель на класс то " стрелка " (->) единственно правильный выбор!!!

Инкремент (++) или декремент (--) указателя изменяют его таким образом, что он всегда указывает на следующий элемент базового типа. Тоже самое и справедливо и для указателей на класс.

Итак предположим у нас стоит задача написать класс Точка и поработать с ним через указатель

#include<iostream.h> class Point{public: // координаты точки int x,y; // функция для установки значений координат точки void Set(int x1,int y1){ x=x1; y=y1; } // функция для показа координат точки void Show(){ cout<<"X is "<<x<<" Y is"<<y<<endl; }}; void main(){ // Создаем массив объектов класса Точка и указатель на этот класс Point astr[2],*ptr; // Задаем конкретные значения для элементов массива astr astr[0].Set(2,3); astr[1].Set(10,10); // Присваиваем адрес первого элемента (у него индекс 0) массива обьектов //Point под названием astr указателю ptr,имеющему также базовый тип // Point.После этого можно с помощью ptr обращаться к элементам // массива ptr=astr;// После этого в ptr адрес элемента массива astr с индексом 0 ptr->Show(); // Каждый раз когда происходит инкремент адрес находящийся // в ptr увеличивается на размер базового типа ptr++;// После этого в ptr адрес элемента массива astr с индексом 1 ptr->Show(); ptr--;//После этого в ptr адрес элемента массива astr с индексом 0 ptr->Show(); }

Итак продолжаем подвиги на стезе обучения!!! Первым пунктом нашей программы будут Перегруженные конструкторы. К этому моменту вы уже знаете этих 2 слова по отдельности и иногда можете попугать знакомых ими.

<== предыдущая лекция | следующая лекция ==>
Указатели на объекты | Оценка скорости сходимости
Поделиться с друзьями:


Дата добавления: 2014-01-14; Просмотров: 332; Нарушение авторских прав?; Мы поможем в написании вашей работы!


Нам важно ваше мнение! Был ли полезен опубликованный материал? Да | Нет



studopedia.su - Студопедия (2013 - 2024) год. Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав! Последнее добавление




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