Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
шпоры ппвис 2 часть с++.doc
Скачиваний:
26
Добавлен:
01.03.2016
Размер:
265.22 Кб
Скачать

1. Отличительные особенности C++.

1)работа с объектами и классами. Новые библиотеки, которые по основному составу одинаковы

Пример: math.h -> math (новая) cmath (старая)

2)использование пространства имен namespace можно рассматривать как сферу видимости имен

Пример:

#include <iostream>

using namespace std; //стандартное пространство имен

int main

{

cin<<n; //описано в пространстве, если не подключит std, не доступна данная операция

}

3)комментарии все строчные

4)если нет в функции параметров то допустимо f(), а не f(void)

5)определен тип bool и соответствующие константы true и false

6)допустима перегрузка функций, методов класса, операторов класса (все это виды статического полиморфизма).

7)наличие средств управления исключениями(try, false, catch)

8)наличие новых видов функций (функции методы (в классе), функции операторы, виртуальные и чисто виртуальные функции).

9)специальные методы класса (конструкторы и деструкторы).

10)наличие новых средств управления памятью new и delete

11)новый тип – ссылочный

2.Операторы new, delete.

Новые средства распределения памяти. Выполняют те же функции что и malloc, calloc и free.

Эти операторы позволяют динамически распределять память для любых типов данных, и используются для выделения и освобождения памяти в ходе выполнения программы. Оператор new – выделение памяти, delete – освобождение памяти.

Пример:

int *p;

p= new int; //выделяется одна ячейка

p=new int(10);//инициализируется ячейка

p=new int[10];//выделяется10 ячеек

delete (p); //удаляется 1 ячейка

delete [](p);

3.Особенности функций С++.

Чтобы избежать дублирования функции, C++ позволяет вам определять несколько функций с одним и тем же именем. В процессе компиляции C++ принимает во внимание количество аргументов, используемых каждой функцией, и затем вызывает именно требуемую функцию. Предоставление компилятору выбора среди нескольких функций называется перегрузкой.

• Перегрузка функций позволяет вам использовать одно и то же имя для нескольких функций с разными типами параметров.

• Для перегрузки функций просто определите две функции с одним и тем же именем и типом возвращаемого значения, которые отличаются количеством параметров или их типом.

Перегрузка функций является особенностью языка C++, которой нет в языке С. Перегрузка функций достаточно удобна и может улучшить удобочитаемость программ.

4. Перегрузка функций.

Перегрузка – механизм (средство) С++. Которое реализует принцип полиморфизма.

Полиморфизм – один и тот же интерфейс используется в одних и тех же контекстах. Один и тот же интерфейс, но использование реализации зависит от сигнатуры. Сигнатура – количество аргументов, их типы и порядок следования в функции. !не должно быть функции с одинаковой сигнатурой.

Правила вызова перегруженной функций:

1)Ищет функцию по строгому совпадению сигнатур.

2)если такая не найдена, то компилятор просматривает перегруженные функции в порядке описания и ищет ближайшую подходящую, используя правила приведения типов.

3)если пользователь хочет вызвать конкретную функцию из перегруженный, то он в вручную может привести тип. Пример: int x; -> (float)x

4) если подходящая функция не найдена, компилятор выдает ошибку.

Пример:TO_SET(int, int, int);TO_SET(int, int);TO_SET(int);TO_SET(char);

5. Ссылки. Назначение и особенности использования.

Ссылочный тип – новый тип, который позволяет установить устранить влияние указателя при работе с функцией.

Ссылочный тип напоминает указатель, но если создать объект типа ссылка, то существенное отличие между ними – к указателям применяется операции разыменования, ссылка не имеет адреса. Во всех других действиях ссылка ведет себя как обычная переменная. Но при передаче ее в функцию – как указатель.

Нельзя получить адрес ссылки, нельзя ссылаться на ссылку, недопустимы массивы ссылок. Ссылка должна быть инициализирована до момента использования.

Ссылка используется для передачи значения в функцию без копирования и возращения значения по ссылке.

Оператор ++ применяется к самому значению, а не к адресу.

<тип> &<имя>

Пример:

int x;

int &y=x;

x++;

cout<< y;

y++;cout<<y;

6.Ссылки и указатели.

Ссылочный тип напоминает указатель, но если создать объект типа ссылка, то существенное отличие между ними – к указателям применяется операции разыменования, ссылка не имеет адреса. Во всех других действиях ссылка ведет себя как обычная переменная. Но при передаче ее в функцию – как указатель.

Нельзя получить адрес ссылки, нельзя ссылаться на ссылку, недопустимы массивы ссылок. Ссылка должна быть инициализирована до момента использования.

Ссылка используется для передачи значения в функцию без копирования и возращения значения по ссылке.

Оператор ++ применяется к самому значению, а не к адресу.

<тип> &<имя> - ссылка

<тип> *<имя> - указатель

7. Использование ссылок в функциях.

Ссылка используется для передачи значения в функцию без копирования и возращения значения по ссылке.

Ссылочный тип напоминает указатель, но если создать объект типа ссылка, то существенное отличие между ними – к указателям применяется операции разыменования, ссылка не имеет адреса. Во всех других действиях ссылка ведет себя как обычная переменная. Но при передаче ее в функцию – как указатель.

Пример:

f(int *);

main()

{

int x=30;

f(&x);

}

f(int *p)

{

(*p)++;

cout<<(*p);

}

f(int &)

main()

{

int x=30;

f(x);

}

f(int &p)

{

p++;

cout<<p;}