0% нашли этот документ полезным (0 голосов)
1 просмотров25 страниц

CPP 2

Документ посвящен технологии объектно-ориентированного программирования (ООП) и охватывает ключевые концепции, такие как указатели, константные указатели, структуры, объединения, битовые поля, перечислимые типы и рекурсивные функции. Также рассматриваются операции с файлами и параметры командной строки. Введение в ООП включает основные понятия: инкапсуляция, наследование и полиморфизм.

Загружено:

e102.gamma
Авторское право
© All Rights Reserved
Мы серьезно относимся к защите прав на контент. Если вы подозреваете, что это ваш контент, заявите об этом здесь.
Доступные форматы
Скачать в формате PDF, TXT или читать онлайн в Scribd
0% нашли этот документ полезным (0 голосов)
1 просмотров25 страниц

CPP 2

Документ посвящен технологии объектно-ориентированного программирования (ООП) и охватывает ключевые концепции, такие как указатели, константные указатели, структуры, объединения, битовые поля, перечислимые типы и рекурсивные функции. Также рассматриваются операции с файлами и параметры командной строки. Введение в ООП включает основные понятия: инкапсуляция, наследование и полиморфизм.

Загружено:

e102.gamma
Авторское право
© All Rights Reserved
Мы серьезно относимся к защите прав на контент. Если вы подозреваете, что это ваш контент, заявите об этом здесь.
Доступные форматы
Скачать в формате PDF, TXT или читать онлайн в Scribd

Технология ООП

Санкт-Петербургский государственный политехнический университет

13 сентября 2011

Технология ООП
Еще немного об указателях

double ∗p1 , ∗ p2 ;
∗ p1 =12.56 e7 ;
∗ p2 =8.85 e12 ;

Технология ООП
Еще немного об указателях

double ∗p1 , ∗ p2 ;
p1 = new double ;
p2 = new double ;
∗ p1 =12.56 e7 ;
∗ p2 =8.85 e12 ;

Технология ООП
Константные указатели и указатели на константу

const char ∗ t i t l e = "Diagram" ; // Указатель на


константу
char ∗ const t i t l e ="Diagram" ; // Константный
указатель

Технология ООП
Константные указатели и указатели на константу

const char ∗ t i t l e = "Diagram" ; // Указатель на


константу
char ∗ const t i t l e ="Diagram" ; // Константный
указатель

Технология ООП
Константные указатели и указатели на константу

Что будет если выполнить:


t i t l e [0]= ’d ’ ;
t i t l e = new_str ;

В первом и во втором случае?

Технология ООП
Константные параметры

char ∗ s t r c p y ( char ∗ d e s t , const char ∗ s o u r c e ) ;

Технология ООП
Способы передачи параметров

В языках С и C++, в отличие от многих других языков,


передача параметров осуществляется по значению — это
значит что в функции происходит работа с копией переменной.
void func ( i n t x ) ;
func ( value ) ;

void func ( f l o a t ∗x ) ;
func ( array ) ;

void func ( f l o a t x [ ] ) ;
func ( array ) ;

v o i d f u n c ( i n t &out_x ) ;
func ( value ) ;

Технология ООП
Возвращаемые значения

double a r r a y [ 1 0 0 ] ;

double& getV ( i n t i ) { r e t u r n a r r a y [ i ] ; }

getV ( 1 ) = 5 . 0 ;
p r i n t f ( "%f \n" , getV ( 1 ) ) ;

Технология ООП
Указатели на функции

Указатель на любую функцию, которая возвращает


вещественное число и требует одно вещественное число в
качестве параметра:
double ( ∗ pFunc ) ( double ) ;

Технология ООП
Указатели на функции

#i n c l u d e <math . h>

double ( ∗ pFunc ) ( double ) ;

i f ( input )
pFunc = s i n ;
else
pFunc = c o s ;

double v a l = pFunc ( 1 . 0 ) ;

Технология ООП
Определение типов

Языки С и C++ позволяют определить новый тип переменных,


присвоив символьное имя какому-то заданному типу.
typedef i n t p o i n t s ;
t y p e d e f s t r u c t Node∗ NodePtr ;
t y p e d e f char Msg [ 1 0 0 ] ;

Технология ООП
Структуры

s t r u c t Man
{
char ∗Name ; // Имя
i n t Age ; // Возраст
};

Технология ООП
Структуры

s t r u c t Man m;
m. Name = new char [ 1 0 0 ] ;

Технология ООП
Массив структур

//TODO: Написать сортировку


Man a r [ 3 ] = {
{"Man1" , 6 0 } ,
{"Man2" , 5 0 } ,
{"Man3" , 80}
};

Технология ООП
Объединения

Union — это структура, все элементы которой имеют нулевое


смещение.
struct Test
{
int selector ;
union
{
long l o n g _ v a l u e ;
short short_value ;
}
};

Технология ООП
Битовые поля

Структура позволяет работать с битовыми полями.


<целый тип> [ идентификатор ] : <размер поля >;

struct byte
{
char a: 1;
char b: 1;
char c: 1;
char d: 1;
char e: 1;
char f: 1;
char g: 1;
char h: 1;

};

Технология ООП
Битовые поля

union c h b y t e
{
byte b i t ;
char x ;
} b;

b . x = ’a ’ ;
p r i n t f ( "%1c\n" , b . b i t . h ? ’ 1 ’ : ’ 0 ’ ) ;

Технология ООП
Перечислимые типы

t y p e d e f enum
{
One , Two , Three
} Digits ;

enum
{
One = 1 , Two , Three
} digit ;

d i g i t = Two ;
Digits digit2 = digit ;

Технология ООП
Рекурсивные функции

Рекурсивная функция — функция вызывающая саму себя.


Функция вычисляющая число Фибоначчи:
unsigned long f i b ( i n t n )
{
unsigned long f =0;
i f ( n>0)
i f ( n==1)
f = 1;
else
f = f i b ( n−1) + f i b ( n−2) ;
return f ;
}

Технология ООП
Операции с файлами

char ∗ f n = " t e s t . t x t " ; // Имя файла


FILE ∗ f p ; // Указатель на файловую с т р у к т у р у
i f ( f o p e n ( fn , " r t " ) == NULL) p r i n t f ( " F i l e ␣not␣found
\n" ) ;

Технология ООП
Операции с файлами

r — Открыть существующий файл только для чтения.


r+ — Открыть существующий файл для обновления.
w — Создать файл для записи.
w+ — Создать новый файл для обновления.
a — Открыть для записи в конец файла.
a+ — Открыть для чтения и записи в конец файла.
b — Открыть файл в двоичном режиме.
t — Открыть файл в текстовом режиме.

Технология ООП
Операции с файлами

char s t r [ 1 0 0 ] ;

while ( ! f e o f ( fp ) )
{
f g e t s ( s t r , 100 , fp ) ;
}
fclose ( str ) ;

Технология ООП
Параметры командной строки

argc — количество параметров в командной строке


программы.
argv — массив из строк содержащий переданные
параметры.

v o i d main ( i n t a r g c , char ∗ a r g v [ ] )
{
char s r c _ f i l e n a m e [ 2 0 ] , d s t _ f i l e n a m e [ 2 0 ] ;
i f ( argc < 3)
p r i n t f ( " e r r o r \n" ) ;
s t r n c p y ( src_filename , argv [ 1 ] , 20) ;
s t r n c p y ( dst_filename , argv [ 2 ] , 20) ;
//TODO: написать копирование файлов
}

Технология ООП
Введение в ООП

Базовые понятия которые имеют существенную роль в ООП:


инкапсуляция
наследование
полиморфизм

Технология ООП

Вам также может понравиться