Презентация «Классы и сокрытие данных Дружественные функции»

Смотреть слайды в полном размере
Презентация «Классы и сокрытие данных Дружественные функции»

Вы можете ознакомиться с презентацией онлайн, просмотреть текст и слайды к ней, а также, в случае, если она вам подходит - скачать файл для редактирования или печати. Документ содержит 42 слайда и доступен в формате ppt. Размер файла: 582.50 KB

Просмотреть и скачать

Pic.1
Классы и объекты
Классы и объекты
Pic.2
Статические переменные внутри класса В стандарте языка С++ нет никаких ограничений по использованию
Статические переменные внутри класса В стандарте языка С++ нет никаких ограничений по использованию статических переменных внутри классов. Однако в реализации объявление статических переменных внутри …
Pic.3
Массивы объектов При описании объектов при помощи классов программистом создается новый тип данных,
Массивы объектов При описании объектов при помощи классов программистом создается новый тип данных, а переменная этого типа (экземпляр) и есть объект. Если рассматривать класс как новый тип данных, …
Pic.4
Массивы объектов - пример #include "iostream" using namespace std; class Cl { int n; publi
Массивы объектов - пример #include "iostream" using namespace std; class Cl { int n; public: Cl(int k) { n = k; } void print () {cout << "Elem =" << n << endl; } …
Pic.5
Указатели и ссылки на объекты void main() { Cl obj1[4] = { Cl(1), Cl(2), Cl(3), Cl(4) }; Cl* ptr; pt
Указатели и ссылки на объекты void main() { Cl obj1[4] = { Cl(1), Cl(2), Cl(3), Cl(4) }; Cl* ptr; ptr = &obj1[3]; ptr->print(); }
Pic.6
Указатели и захват динамической памяти Cl* ptr; ptr = new Cl; ptr->print(); delete ptr;
Указатели и захват динамической памяти Cl* ptr; ptr = new Cl; ptr->print(); delete ptr;
Pic.7
Ссылки на объекты Вспомним о неприятных случаях, рассмотренных на предыдущей лекции, когда деструкто
Ссылки на объекты Вспомним о неприятных случаях, рассмотренных на предыдущей лекции, когда деструктор содержит освобождение памяти и приходится применять конструктор копирования. Чтобы обойти такие …
Pic.8
Указатель this В памяти для каждого располагаемого объекта создается специальный уникальный указател
Указатель this В памяти для каждого располагаемого объекта создается специальный уникальный указатель. Этот указатель делается доступным путем использования ключевого слова this. Правила: каждому …
Pic.9
Указатель this - пример #include "iostream" using namespace std; class Cl { public: int n;
Указатель this - пример #include "iostream" using namespace std; class Cl { public: int n; Cl(int n) { this->n = n; } void print () {cout << "Elem =" << n << …
Pic.10
Указатель this - пример #include "iostream" using namespace std; class Cl { public: int n;
Указатель this - пример #include "iostream" using namespace std; class Cl { public: int n; Cl(int n) { this->n = n; } void print () {cout << "Elem =" << n << …
Pic.11
Указатель this - пример #include "iostream" using namespace std; class Cl { public: int n;
Указатель this - пример #include "iostream" using namespace std; class Cl { public: int n; Cl(int n) { this->n = n; } void print () {cout << "Elem =" << n << …
Pic.12
Спецификатор const #include "iostream“ using namespace std; class cls { int n; public: void pri
Спецификатор const #include "iostream“ using namespace std; class cls { int n; public: void print() const // { cout << "n= " << n << endl; n++; } { cout << …
Pic.13
Статические функции #include "iostream" using namespace std; class cls { int n; public: st
Статические функции #include "iostream" using namespace std; class cls { int n; public: static void Conv() { n = 0;} }; void main() { cls obj; obj. Conv(); } // Так нельзя!!!
Pic.14
Вложенные классы char c; class cls { char c; class XXX { char c; void func(char Ch) { ::c = cls::c =
Вложенные классы char c; class cls { char c; class XXX { char c; void func(char Ch) { ::c = cls::c = c =Ch; } };
Pic.15
Вложенные классы еще void func() { class local { . . . } x; . . . // все что угодно }; local y; // з
Вложенные классы еще void func() { class local { . . . } x; . . . // все что угодно }; local y; // запрещено, так как класс описан в контексте функции func
Pic.16
Другие способы описания объектов Класс - class Структура - structure Объединение (смесь) - union
Другие способы описания объектов Класс - class Структура - structure Объединение (смесь) - union
Pic.17
Объединение - пример
Объединение - пример
Pic.18
Объединение – пример 2
Объединение – пример 2
Pic.19
Объединение - ограничения
Объединение - ограничения
Pic.20
Инкапсуляция – сокрытие данных Инкапсуляция – это механизм языка программирования, который позволяет
Инкапсуляция – сокрытие данных Инкапсуляция – это механизм языка программирования, который позволяет объединять данные и код, взаимодействующий с этими данными. Инкапсуляция – это способность …
Pic.21
Атрибут доступа Каждая функция и элемент данных, описанные внутри класса, имеют атрибут доступа: pub
Атрибут доступа Каждая функция и элемент данных, описанные внутри класса, имеют атрибут доступа: public (открытый) – доступ к элементам класса может быть осуществлен как из самого класса, так и извне …
Pic.22
Инкапсуляция – идея class My_cl { public: void Set(int n); . . . protected : . . . private: . . . };
Инкапсуляция – идея class My_cl { public: void Set(int n); . . . protected : . . . private: . . . }; // public – виден и доступен всем // protected – виден и доступен только из базового класса и из …
Pic.23
Инкапсуляция - пример class My_str { public: void Get(int n); int Var1; . . . protected : int Var2;
Инкапсуляция - пример class My_str { public: void Get(int n); int Var1; . . . protected : int Var2; . . . private: int Var3; . . . }; Где либо в программе: My_str::Get(a);
Pic.24
Дружественные функции – общие положения При написании программ часто встречается ситуация, при котор
Дружественные функции – общие положения При написании программ часто встречается ситуация, при которой необходимо иметь доступ к закрытым компонентам классов. При использовании обычных внешних …
Pic.25
Дружественная функция (пример) #include <iostream. h> using namespace std; class C { int n; pu
Дружественная функция (пример) #include <iostream. h> using namespace std; class C { int n; public: C(int n) {this->n = n; }; // конструктор void print() { cout << …
Pic.26
Дружественная функция – объявление и вызов Для того, чтобы дружественная функция осуществляла доступ
Дружественная функция – объявление и вызов Для того, чтобы дружественная функция осуществляла доступ к компонентам класса необходимо в качестве аргумента передавать либо указатель либо ссылку на …
Pic.27
Дружественная функция (пример 2) #include <iostream. h> class B; // ссылка вперед – некоторый
Дружественная функция (пример 2) #include <iostream. h> class B; // ссылка вперед – некоторый // аналог прототипа функции class C { int k; public: C(int n) { k = n; }; // конструктор friend …
Pic.28
Спецификатор friend классов Дружественные функции могут быть перегружены. Любой метод одного класса
Спецификатор friend классов Дружественные функции могут быть перегружены. Любой метод одного класса может быть дружественным по отношению к другому классу. В этом случае для доступа к компонентам …
Pic.29
Спецификатор friend классов #include <iostream. h> class A { int i; public: friend class B; A(
Спецификатор friend классов #include <iostream. h> class A { int i; public: friend class B; A( ) : i(1) { }; // конструктор ~A( ) { }; void f1_A(const B&); }; class B { int j; public: …
Pic.30
Спецификатор friend классов - свойства Основные свойства и правила использования спецификации friend
Спецификатор friend классов - свойства Основные свойства и правила использования спецификации friend. friend-функции не являются компонентами класса, но имеет доступ ко всем его компонентам; …
Pic.31
Тесты … Вопрос: Что будет выведено на экран в результате выполнения программы?
Тесты … Вопрос: Что будет выведено на экран в результате выполнения программы?
Pic.32
Тесты … Вопрос: Что будет выведено на экран в результате выполнения программы?
Тесты … Вопрос: Что будет выведено на экран в результате выполнения программы?
Pic.33
Тесты … Вопрос: Чем классы отличаются от структур?
Тесты … Вопрос: Чем классы отличаются от структур?
Pic.34
Тесты … Вопрос: Чем классы отличаются от структур?
Тесты … Вопрос: Чем классы отличаются от структур?
Pic.35
Тесты … Вопрос: Корректен ли код с точки зрения выделения ресурсов?
Тесты … Вопрос: Корректен ли код с точки зрения выделения ресурсов?
Pic.36
Тесты … Вопрос: Корректен ли код с точки зрения выделения ресурсов?
Тесты … Вопрос: Корректен ли код с точки зрения выделения ресурсов?
Pic.37
Тесты … Вопрос: Скомпилируется ли следующий код:
Тесты … Вопрос: Скомпилируется ли следующий код:
Pic.38
Тесты … Вопрос: Скомпилируется ли следующий код:
Тесты … Вопрос: Скомпилируется ли следующий код:
Pic.39
Тесты … Вопрос: Что выведет следующая программа:
Тесты … Вопрос: Что выведет следующая программа:
Pic.40
Тесты … Вопрос: Что выведет следующая программа:
Тесты … Вопрос: Что выведет следующая программа:
Pic.41
Тесты … Вопрос: Какое утверждение о следующем коде верно:
Тесты … Вопрос: Какое утверждение о следующем коде верно:
Pic.42
Тесты … Вопрос: Какое утверждение о следующем коде верно:
Тесты … Вопрос: Какое утверждение о следующем коде верно:


Скачать презентацию

Если вам понравился сайт и размещенные на нем материалы, пожалуйста, не забывайте поделиться этой страничкой в социальных сетях и с друзьями! Спасибо!