Студопедия

КАТЕГОРИИ:


Архитектура-(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)

Переименование типов. Ключевое слово typedef




Перечислимый тип

 

Перечислимый тип (enumeration) – это множество поименованных целых констант Используется для улучшения читаемости программы

 

enum имя_типа { список_перечисления} переменная1,…,переменнаяN; }

 

enum seasons {win,spr,sum,aut};

seasons s;

 

Оператор printf(“%d%d\n”,win,aut); выводит на экран числа 0 и 3.

 


Изменение порядковых номеров

enum value {one=1,two,three,ten=10,thousand=1000,next};

printf("%d %d %d %d %d\n",one,two,ten,thousand,next);

На экран будет выведено: 1 2 10 1000 1001

 

Операции с переменными перечислимого типа
· Присвоение переменной типа enum другой переменной того же типа
· Сравнение с целью выяснения равенства или неравенства
· Арифметические операции с константами типа enum (i=ten-one)

 

 

Ключевое слово typedefпозволяет создать новое имя для существующего типа данных Новое имя определяется в качестве дополнения к существующему типу

 

typedef тип новое_имя;

Пример

typedef float balance;

balance x; // определение переменной x типа balance (float).

 

 


Класс

 

Принципы построения классов

Инкапсуляция Объединение в едином объекте данных и функций, обрабатывающих эти данные
Наследование Наследование предполагает, что в классы могут составлять иерархию, и все характеристики класса-родителя присваиваются классу-потомку. После этого потомку добавляют новые характеристики. Иногда некоторые функции(методы) в классе-потомке переопределяются.
Полиморфизм (многоформие) Родственные объекты (происходящие от одного родителя) могут вести себя по-разному в зависимости от ситуации, возникающнй во время выполнения программы.

 

 

· Класс -тип данных, определяемых пользователем · Класс включает как данные, так и код, предназначенный для выполнения действий над этими данными · Простые классы могут содержать только код или только данные · По умолчанию члены класса являются закрытыми (private-членами), поэтому ключевое private может отсутствовать · Ключевое слово public используется для объявления открытых членов класса, доступных для других частей программы · Доступ к закрытым членам класса организуется через его открытые функции · Конструктор – это специальная функция, которая является членом класса и имя которой совпадает с именем класса. Конструктор объекта вызывается при создании объекта, т. е. при выполнении инструкции объявления объекта. Выполняет функцию инициализации объекта · Деструктор – это функция, которая вызывается при разрушении объекта

Объявление класса в общем виде

 

сlass имя_класса{

private:

приватные данные и функции;

protected:

защищенные данные и функции;

public:

общие данные и функции

}список объектов; // как и в определении структуры может отсутствовать

 

Пример

#include <iostream>

#include <conio>

using namespace std;

class Cat

{

int itsAge; // приватная часть

public:

Cat(); // конструктор

Cat(int initialAge); // конструктор c параметром

~Cat(); // деструктор

void SetAge(int age) {itsAge=age;}

int GetAge() {return itsAge;}

void Meow() {cout<<"Мяу\n";}

};


Cat::Cat()

{

}

Cat::Cat(int initialAge)

{

itsAge=initialAge;

}

Cat::~Cat()

{

cout <<"Destructor<<endl ";

}

int main()

{

Cat Kiska; // конструктор без параметра создает объект Kiska

Kiska.SetAge(5);// установка переменной itsAge

cout<<"Now Kiska is "<<Kiska.GetAge()<<"years old\n";

Cat Pusik(3);// конструктор с параметром создает объект Pusik

cout<<"Now Pusik is "<<Pusik.GetAge()<<"years old\n";

Kiska.Meow();

Pusik.Meow();

Pusik.~Cat(); // деструктор в явном виде

Kiska.~Cat();

getch();

return 0;

}

 


Объявление функций-членов со спецификатором const

 

Такой функции будет запрещено изменять значения переменных-членов класса int GetAge() const {return itsAge;} Это правило хорошего тона программирования.  

 




Поделиться с друзьями:


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


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



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




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