С++. Отличия

Содержание

Слайд 2

Отличия

Регистро-зависимый
Контроль типов
Перегрузка операторов
Классы, объекты, наследование
Конструкторы, Деструкторы
Inline, Темплейты
Исключения

Отличия Регистро-зависимый Контроль типов Перегрузка операторов Классы, объекты, наследование Конструкторы, Деструкторы Inline, Темплейты Исключения

Слайд 3

Типы данных

1) bool
2) char, signed char, unsigned char
3) short, signed short, unsigned

Типы данных 1) bool 2) char, signed char, unsigned char 3) short,
short
4) int, signed int, unsigned int
5) long, signed long, unsigned long
6) float, double, long double
7) void

Слайд 4

Новые типы

typedef тип новый_тип;
Примеры:
typedef unsigned int size_t;
typedef size_t count_t;
size_t n = 100;
count_t

Новые типы typedef тип новый_тип; Примеры: typedef unsigned int size_t; typedef size_t
c = n;

Слайд 5

Диапазоны значений типов

bool
signed char, char
unsigned char
signed short
unsigned short
signed long
unsigned long
long = int

true,

Диапазоны значений типов bool signed char, char unsigned char signed short unsigned
false
-2^4 … 2^4
0 … 2^8
-2^8 … +2^8
0 … +2^16
-2^16 … +2^16
0 … +2^32

Слайд 6

Объявление типов

1) int i;
2) unsigned int k, K;
3) char ch; double d;
4)

Объявление типов 1) int i; 2) unsigned int k, K; 3) char
int m = 10;
5) char e, c = ‘b’;
6) bool b = false;
7) int* p1, p2; ( int* p1; int p2)
8) const int b = 100;

Слайд 7

Операции

++
--
-=
+=
*=
/=
%=
?:

увеличение на 1
уменьшение на 1
вычитание с присваиванием
cложение …
умножение …
деление …
остаток от

Операции ++ -- -= += *= /= %= ?: увеличение на 1
деления …
при условии (a > b ? 1 : 0)

Слайд 8

Приоритеты операций

1) int b = 5;
b += 6; ( b = b

Приоритеты операций 1) int b = 5; b += 6; ( b
+ 6;)
2) int i = 1;
int b = i++; (b = 1, i =2);
int c = ++i; (b = 2, I = 2);
3) int i = 0;
Не делать: ++i++;
(i+=2);

Слайд 9

Условный оператор if

if ( выражение1 )
операция1;
else if(выражение2)
операция2;
….
else
операцияN;

Условный оператор if if ( выражение1 ) операция1; else if(выражение2) операция2; …. else операцияN;

Слайд 10

Примеры

1) if(a2) if(a3) if(a

Примеры 1) if(a 2) if(a 3) if(a 4) if(a b) b=10; else
{b = 0;}
4) if(ab) b=10; else b=0;
int a = 1; int b =1;
5) if(a++) b++; ( a = 2, b = 2)
6) if(++a) b++; ( a = 2, b = 2)

Слайд 11

Условный оператор switch

switch( выражение)
{
case константа1: операция; break;
case константа2: {операции;} break;

default: операция; break;
}

Условный оператор switch switch( выражение) { case константа1: операция; break; case константа2:

Слайд 12

Примеры

int a = 1; int b = 3; int c = 5;

Примеры int a = 1; int b = 3; int c =
int d = 10;
int x = a;
switch(x) {
case 1: x++; break;
case 3: x++;
case 5: x++; break;
default: x--; break;
}

Слайд 13

Оператор цикла while

while ( выражение ) оператор;
int a = 10;
while( 0 !=

Оператор цикла while while ( выражение ) оператор; int a = 10;
a) a--; ( a = 0, [10 … 0] )
while( 0 != a) {--a;} ( a = 0, [10 … 0] )
while( 0 != a--); ( a = -1, [10 … 0] )
while( 0 != --a); ( a = 0, [9 … 0] )

Слайд 14

Оператор цикла do while

do оператор; while (выражение);
int a = 10
do
{
a--;
} while(0 !=

Оператор цикла do while do оператор; while (выражение); int a = 10
a); ( a = 0, [9 … 0] )

Слайд 15

Оператор цикла for

for(инициализация; выражение;операции)
оператор;
1) for (int i = 0; i < 10;

Оператор цикла for for(инициализация; выражение;операции) оператор; 1) for (int i = 0;
i++) ; ( i = 9, [0 … 9] )
2) int b = 2;
for (int i = 0; i < 100 && 0 != b; i++) b--;
( b = 0, I = 2);

Слайд 16

Операторы передачи управления

goto
break
continue
return

Операторы передачи управления goto break continue return

Слайд 17

Массивы

int buf[128]; int bbuf[100][128];
char str[] = “Строка”;
Неправильно: int n = 10; int

Массивы int buf[128]; int bbuf[100][128]; char str[] = “Строка”; Неправильно: int n
buf[n];
Пример:
int m[4] = {10, 15, 20, 30};
int sum = 0;
for(int i =0; i < 4; i++) sum += m[i];

Слайд 18

Указатели

тип (*имя) (список_аргументов);
int (*func) (double, double);
2) тип* имя;
int* a, b, *c;
3) void*

Указатели тип (*имя) (список_аргументов); int (*func) (double, double); 2) тип* имя; int*
имя;
void* p;

Слайд 19

Ссылки

тип& имя;
Пример:
int i;
i = 5;
int& r = i;
r = 10;

Ссылки тип& имя; Пример: int i; i = 5; int& r = i; r = 10;

Слайд 20

Примеры

int m[4] = {1, 2, 3, 4};
int* p = m;
int** pp =

Примеры int m[4] = {1, 2, 3, 4}; int* p = m;
&p;
1)int m2 = p[2]; ( 3 элемент)
2)int m2 = *(p+2);

m

p

pp

Слайд 21

Примеры

int i;
1) int* p = &i;
2) int* pp = p;
3) void* vp

Примеры int i; 1) int* p = &i; 2) int* pp =
= (void*)p;
4) int* const cp = &i;
5) const int* const ccp = &i;
6) int* np = NULL;
7) int* zp = 0;

Слайд 22

Операции с указателями

int m[4] = {1, 2, 3, 4};
unsigned int* p =

Операции с указателями int m[4] = {1, 2, 3, 4}; unsigned int*
m;
unsigned int* d = p;
1) p++;
2) int i = p – d; ( i = 1, p = m[1])
4) *p = 4; (m {1, 4, 3, 4} )
5) p+=2; p--;

Слайд 23

Операции с указателями

1) const char* cp = “Строка”; char* p = (char*)cp;
2)

Операции с указателями 1) const char* cp = “Строка”; char* p =
p++;
3) int* ip = (int*)cp;
4) ip++;

С

т

р

о

к

а

\0

p

С

т

р

о

к

а

\0

p

С

т

р

о

к

а

\0

ip

С

т

р

о

к

а

\0

ip

Слайд 24

Строки, Символы

1) “Строка1” “Строка1\nСтрока2”
2) ‘c’, ‘0’, ‘\0’
Примеры:
1) char* str = “Строка1”; (

Строки, Символы 1) “Строка1” “Строка1\nСтрока2” 2) ‘c’, ‘0’, ‘\0’ Примеры: 1) char*
const char*)
2) char ch = ‘c’;
3) char ch1 = *str; ( ch1 = ‘C’);

Слайд 25

Операции со строками

char* str = “Строка”;
1)int* ip = (int*)str;
ip++; ( *ip ==

Операции со строками char* str = “Строка”; 1)int* ip = (int*)str; ip++;
‘о’)
Нельзя: *ip = ‘м’;
2)char* cp = str;
cp++; (*cp == ‘т’)
Нельзя: *cp = ‘м’;

Слайд 26

Перебор строки

сhar* p = “Строка”;
while(*p) p++;

Перебор строки сhar* p = “Строка”; while(*p) p++;

Слайд 27

printf

printf(“Строка\n”);
printf(“%s\n”, “Строка”);
printf(“%s %i\n”, “Строка”, 100);
printf(“%s %i%c”, “Строка”, 100, ‘\n’);

printf printf(“Строка\n”); printf(“%s\n”, “Строка”); printf(“%s %i\n”, “Строка”, 100); printf(“%s %i%c”, “Строка”, 100, ‘\n’);

Слайд 28

Структура программы (функции)

1) void func()
{
}
2) int func1(void)
{
return 5;
}

3)
bool func2(bool b);

bool func2(bool b)
{
return

Структура программы (функции) 1) void func() { } 2) int func1(void) {
!b
}

Слайд 29

Передача объекта

void func(string* p, string& r, string s)
{
*p += 5;
r +=5;
s

Передача объекта void func(string* p, string& r, string s) { *p +=
+=5;
}
string s;
func(&s, s, s);

Слайд 30

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

void func(int i)
{
printf(“%i\n”, i);
}
void func(char c)
{
printf(“%c\n”, c);
}

func(10);
func(‘c’);
func((int)‘c’);

Перегрузка функций 1 void func(int i) { printf(“%i\n”, i); } void func(char

Слайд 31

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

void func(const char* p)
{
printf(“1: %s\n”, p);
}
void func(char* p)
{
printf(“2: %s\n”, p);
}

func(“Строка”);
2)

Перегрузка функций 2 void func(const char* p) { printf(“1: %s\n”, p); }
char* p =“Строка”;
func(p);
3) func(0);

Слайд 32

Структуры

struct [имя_типа] {
тип1 переменная1;
тип2 переменная2;
………
};

struct {
тип1 переменная1;
тип2 переменная2;
………
} [объекты];

Структуры struct [имя_типа] { тип1 переменная1; тип2 переменная2; ……… }; struct {