Переменные, имеющие областью видимости блок, называются локальными переменными.
⇐ ПредыдущаяСтр 4 из 4 на примере.
Класс памяти определяет порядок размещения объекта в памяти. Различают автоматический и статический классы памяти. C++ располагает четырьмя спецификаторами класса памяти: auto register static extern по два для обозначения принадлежности к автоматическому и статическому классам памяти. В свою очередь, статический класс памяти может быть локальным (внутренним) или глобальным (внешним). Следующая таблица иллюстрирует иерархию классов памяти.
auto. Этот спецификатор автоматического класса памяти указывает на то, что объект располагается в локальной (или автоматически распределяемой) памяти. Он используется в операторах объявления в теле функций, а также внутри блоков операторов. register. Ещё один спецификатор автоматического класса памяти. Применяется к объектам, по умолчанию располагаемым в локальной памяти. Представляет из себя "ненавязчивую просьбу" к транслятору (если это возможно) о размещении значений объектов, объявленных со спецификатором register в одном из доступных регистров, а не в локальной памяти.
tatic. Спецификатор внутреннего статического класса памяти. Применяется только(!) к именам объектов и функций. В C++ этот спецификатор имеет два значения. Первое означает, что определяемый объект располагается по фиксированному адресу. Тем самым обеспечивается существование объекта с момента его определения до конца выполнения программы. Второе значение означает локальность. extern. Спецификатор внешнего статического класса памяти. Обеспечивает существование объекта с момента его определения до конца выполнения программы. Свободная память Унарные операторы new и delete служат для управления свободной памятью. Свободная память – это предоставляемая системой область памяти для объектов, время жизни которых напрямую управляется программистом. Программист создает объект с помощью ключевого слова new, а уничтожает его, используя delete. Это важно при работе с динамическими структурами данных, такими как списки и деревья. Еще один пример – создание объектов, которые используются после возвращения из функции, в которой они были созданы. Оператор new принимает следующие формы:
3 эффекта: выделяется надлежащий объем памяти для хранения указанного типа, инициализируе(ю)тся объект(ы) и возвращается базовый адрес объекта.
12) Объявление и инициализация одномерного и двумерного массивов. Работа с элементами массива через указатель. Прежде чем использовать массив, его нужно определить. Определение массива включает в себя: тип данных хранящихся в массиве, имя массива и в квадратных скобках указывается количество элементов массива: int array[10]; В этом коде мы определили массив с идентификатором (именем) array (массив) из десяти элементов типа int. В таком виде, все элементы массива ещё неинициализированы. Чтобы инициализировать их при обьявлении, нужно использовать следующий синтаксис:
int array[10] = {0, 1, 2, 3, 4, 5, 6, 7, 8, 9}; Чтобы присвоить элементам массива значение, можно воспользоваться циклами. Самым подходящим для этого будет цикл for. int array[10]; //определение массива for (int i = 0; i < 10; i++){ array[i] = i;}Простейшим многомерным массивом является двумерный. Давайте рассмотрим пример двумерного массива: 1.int twoArr [5] [15]; для получения доступа к элементу массива с координатами 5.5, то следует использовать запись: 1.int line [5][5]; Доступ к эелементам массива через указатели:-----------
13) Принципы ООП. Инкапсуляция. Наследование. Полиморфизм. Объектно-ориентированное программирование базируется на трех важнейших принципах, придающих объектам новые свойства. Этими принципами являются инкапсуляция, наследование и полиморфизм. Инкапсуляция - это объединение в единое целое данных и алгоритмов обработки этих данных. В рамках ООП данные называются полями объекта (свойствами), а алгоритмы - объектными методами или просто методами. Инкапсуляция позволяет в максимальной степени изолировать объект от внешнего окружения. Она существенно повышает надежность разрабатываемых программ, т.к. локализованные в объекте алгоритмы обмениваются с программой сравнительно небольшими объемами данных, причем количество и тип этих данных обычно тщательно контролируются. В результате замена или модификация алгоритмов и данных, инкапсулированных в объект, как правило, не влечет за собой плохо прослеживаемых последствий для программы в целом Наследование - есть свойство объектов порождать своих потомков. Объект-потомок автоматически наследует от родителя все поля и методы, может дополнять объекты новыми полями и заменять (перекрывать) методы родителя или дополнять их. Пример наследования(3 класса наследуются поочереди) #include <iostream> using namespace std; class transport { private: int kolvo_koles; string nazvanie_transporta; public: void vvod() {cout<< "введите количество колёс: "; cin>>kolvo_koles; cout<< "введите название транспорта: "; cin>>nazvanie_transporta; } void vivod() { cout<<"количество колёс: "<<kolvo_koles<<endl; cout<<"название транспорта: "<<nazvanie_transporta<<endl;
} }; class dlina: public transport {
public: int dlina; void dis() { cout<<"Ваедите длину автобуса -->"; cin>>dlina; } void disp() { if(dlina>10) cout<<"Длинный "<<endl; else cout<<"Короткий"<<endl; }
}; class passagirovmestimost: public dlina { int kolvo_pass; public: void one() {cout<<"passagirovmestimost"<<endl;
} void two() { if(dlina<20) cout<<"kolichestvo 100-120"<<endl; else cout<<"<120"<<endl; } }; int main() { setlocale(LC_ALL,"Rus"); transport Avtobus; dlina q; Avtobus.vvod(); q.dis(); Avtobus.vivod(); q.disp(); passagirovmestimost z; z.one(); z.two(); system ("pause"); return 0; } Полиморфизм-------- 14) Классы и объекты в языке С++. Утилиты класса. Определение класса (поля, методы, доступ к членам класса). Определение методов в классе и вне класса. Определение класса должно располагаться до main. Начнём с простых примеров: class soldier{public: int x,y; int ammo;};
Воспользуйтесь поиском по сайту: ©2015 - 2024 megalektsii.ru Все авторские права принадлежат авторам лекционных материалов. Обратная связь с нами...
|