- •2)Этапы изготовления загрузочного модуля.
- •4)Типы данных.
- •5)Описание типов переменных и именованных констант.
- •6) Классы памяти, область действия, область видимости, время жизни переменных
- •7) Уточнение типа константы (литерала).
- •8)Выражения. Арифметические операции, операции отношения.
- •12) Операция явного приведения типа. Правила преобразования операндов при вычислении выражений. Приоритет операций и порядок их выполнения.
- •Int main(){ // или просто main()
- •14) Форматный ввод-вывод. Функции ввода и вывода;
- •15) Управляющая строка: управляющие символьные константы, поясняющий текст, спецификации преобразования (флаги, ширина, точность, модификаторы, типы преобразования).
- •16) Оператор- выражение. Примеры использования.
- •17) Оператор безусловного перехода. Примеры использования.
- •18) Операторы условного перехода: switch. Примеры использования.
- •19) Операторы условного перехода: if. Примеры использования.
- •20) Операторы цикла: while, do while. Примеры использования.
- •21)Операторы цикла: for. Примеры использования
- •22)Внутреннее представление целых данных.
- •23) Внутреннее представление данных с плавающей точкой
- •24) Другие операторы: break, continue, return. Примеры использования
- •25) Понятие указателя. Виды указателей. Их описание
- •26) Специальные операции, связанные с указателями. Стандартные операции, применимые к указателям.
- •27) Инициализация указателей.
- •28) Одномерные массивы. Описание массивов, их инициализация.
- •29) Связь одномерных массивов с указателями. Динамическое выделение памяти для одномерных массивов.
- •30) Одномерные массивы. Описание массивов, их инициализация.
- •31) Связь двумерных массивов с указателями. Динамическое выделение памяти для двумерных массивов.
- •32) Функции пользователя. Прототипы функций (объявление функций). Структура функции пользователя. Вызов функции. Виды функций.
- •33) Функции пользователя. Способы передачи информации между функциями.
- •34) Функции пользователя. Механизм передачи аргументов в функцию. Передача аргументов функции: передача значений, передача адресов. Возврат результатов из функции.
- •35) Соответствие между фактическими и формальными аргументами. Использование указателей в качестве аргументов. Возврат результатов из функции.
- •36) Понятие ссылки, ее описание. Использование ссылок для передачи аргументов в функцию и обратно.
- •37) Виды функций. Функции с переменным числом аргументов.
- •38) Виды функций. Функции с аргументами, заданными по умолчанию. Inline-функции.
- •39) Виды функций. Рекурсивные функции.
- •40) Виды функций. Перегруженные функции.
- •41) Виды функций. Шаблоны функций.
- •Inline - функция
- •42) Передача аргументов функции main(). Возврат из функции main().
- •43) Описание строк и символов. Функции ввода-вывода символов и строк.
- •44) Действия над строками и символами.
- •46.Использование указателей на строки. Выделение памяти под строку и под массив строк.
- •47.Типы данных, задаваемые пользователем. Оператор typedef. Перечислимый тип
- •48.Структурированный тип данных: структуры, их описание, доступ к полям структуры, вложенные структуры, указатель на структуру, массивы структур
- •49.Разновидности структуры: битовые поля, смеси (объединения). Использование их для построения сложных структур.
- •50.Файлы в с. Способы обмена. Файловый тип. Описание файлов.
- •51.Файлы в с. Потоковый обмен: блоковый, форматный.
- •53.Объекты и классы. Описание классов. Объявление объектов.
- •2 Способа вызова:
- •54Указатель this.
- •55.Конструкторы и деструкторы. Их назначение. Виды конструкторов.
- •61) Наследование. Производный класс. Конструкторы и деструкторы производных классов.
- •62) Множественное наследование.
62) Множественное наследование.
Множественное наследование означает, что класс имеет несколько базовых классов.
Если в базовых классах есть одноименные элементы, при этом может произойти
конфликт идентификаторов, который устраняется с помощью операции
доступа к области видимости:
class monstr{
public: int get__hedlth():
}:
class hero{
public: int get_health();
class ostrich: public monstr. public hero{
}: '
int main(){
ostrich A:
cout « A.monstr::get_health():
cout « A.hero: :get__health():
}
Как видно из примера, для вызова метода gethealth требуется явно указывать
класс, в котором он описан. Использование обычной для вызова метода класса
конструкции A.get_health() приведет к ошибке, поскольку компилятор не в
состоянии разобраться, к методу какого из базовых классов требуется обратиться.
Если у базовых классов есть общий предок, это приведет к тому, что производный
от этих базовых класс унаследует два экземпляра полей предка, что чаще
всего является нежелательным. Чтобы избежать такой ситуации, требуется при
наследовании общего предка определить его как виртуальный класс:
class monstr{
}:
class daemon: virtual public monstr{
class lady: virtual public monstr{
class baby: public daemon, public lady{
}:
Класс baby содержит только один экземпляр полей класса monstr. Если базовый
класс наследуется и как виртуальный, и обычным образом, в производном классе
будут присутствовать отдельные экземпляры для каждого невиртуального вхождения
и еще один экземпляр для виртуального.
Множественное наследование применяется для того, чтобы обеспечить производный
класс свойствами двух или более базовых. Чаще всего один из этих
классов является основным, а другие обеспечивают некоторые дополнительные
свойства, поэтому они называются классами подмешивания. По возможности
классы подмешивания должны быть виртуальными и создаваться с помощью
конструкторов без параметров, что позволяет избежать многих проблем, возникающих
при ромбовидном наследовании (когда у базовых классов есть общий
предок).