Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Программирование – 2 курс осень 2020 – 3 занятие

ТиМПИ
September 22, 2020
190

Программирование – 2 курс осень 2020 – 3 занятие

ТиМПИ

September 22, 2020
Tweet

More Decks by ТиМПИ

Transcript

  1. dscs.pro spbu.ru 2/13 Что можно моделировать: 1. Математические модели (Графы,

    БСД и т.д.) 2. Сложные структуры (Порт, Городская администрация и т.д.) Зачем: 1. Упрощает жизнь разработчику и команде разработчиков. 2. Упрощает жизнь тому, кто будет править код разработчика и сопровождать его. 3. Может упростить жизнь пользователя. Моделирование
  2. dscs.pro spbu.ru 3/13 сlass Class_Name{ // конструктор Class_Name(…){ // код

    конструктора } // поля класса // методы класса } Всё просто? Сейчас пойдём по трупам пунктам: 1. Конструкторы 2. Поля 3. Методы 4. Друзья (да, да, они даже у класса есть, а у тебя нету) 5. this 6. Инкапсуляция 7. Деструктор Структура класса
  3. dscs.pro spbu.ru 4/13 сlass Class_Name{ // конструктор Class_Name(int a){ //

    код конструктора } } сlass Class_Name{ } сlass Class_Name{ // конструктор Class_Name(){ // код конструктора } // конструктор Class_Name(){ // код конструктора } } сlass Class_Name{ // конструктор Class_Name(){ // код конструктора } // конструктор Class_Name(int a){ // код конструктора } } Конструкторы
  4. dscs.pro spbu.ru 5/13 сlass Class_Name{ // конструктор Class_Name(…){ // код

    конструктора } public var a; b; c; } сlass Class_Name{ // конструктор Class_Name(…){ // код конструктора } private var a; b; c; } сlass Class_Name{ // конструктор Class_Name(…){ // код конструктора } public: var a; b; c; private: var e; d; x; } Поля
  5. dscs.pro spbu.ru 6/13 сlass Class_Name{ // конструктор Class_Name(…){ // код

    конструктора } private: var a; b; c; public: void set(var a_1, b_1 , c_1){ a = a_1; b = b_1; c = c_1; } void get() cout << a << b << c; } сlass Class_Name{ // конструктор Class_Name(…){ // код конструктора } private: var a; b; c; public: void set_a(var a_1) a = a_1; void set_b(var b_1) b = b_1; var get_a() return a; } Get-set
  6. dscs.pro spbu.ru 7/13 int main(){ Class_Name name = Class_Name(); name.a

    = 0; int d = 1; return name.sum(d); } сlass Class_Name{ public: int a; b; c; void print() cout << a << b << c; int sum(int d) return (a+d) } int main(){ Class_Name name = Class_Name(); name.a = 0; name.print(); return 0; } Методы
  7. dscs.pro spbu.ru 8/13 class BTreeNode { friend BTree; public: …

    private: int keys[2 * t - 1 + 1]; BTreeNode * links[2 * t + 1]; bool leaf; }; class BTree { friend BTreeNode; public: … private: BTreeNode * root = NULL; }; Друзья
  8. dscs.pro spbu.ru 9/13 сlass Class_Name{ public: Class_Name((constructor)); var Method_1((arguments_1)); var

    Method_2 ((arguments_1)); var Method_3 ((arguments_1)); } Class_Name:: Class_Name ((constructor)){ // код конструктора} Class_Name::Method_1((arguments_1)){ // код Method_1} Class_Name::Method_2((arguments_2)){ // код Method_2} Class_Name::Method_3((arguments_3)){ // код Method_3} Методы класса вне класса
  9. dscs.pro spbu.ru 10/13 10/21 сlass Class_Name{ private: int a; public:

    Class_Name(); var Method(int a); } Class_Name:: Class_Name (){ this->a = 0} Class_Name::Method(int a){ this->a = a} сlass Class_Name{ private: int m_a; public: Class_Name(); var Method(int a); } Class_Name:: Class_Name (){ m_a = 0} Class_Name::Method(int a){ m_a = a} сlass Class_Name{ private: int a; public: Class_Name(); var Method(int a); } Class_Name:: Class_Name (){ a = 0} Class_Name::Method(int a){ this->a = a} this
  10. dscs.pro spbu.ru 11/13 сlass Class_Name{ private: int a; public: Class_Name();

    ~ Class_Name(); } Class_Name::~Class_Name (){ delete a} сlass Class_Name{ private: int a; public: Class_Name(); ~ Class_Name(); } Class_Name::~Class_Name (){} сlass Class_Name{ private: int b; int a[b]; public: Class_Name(); ~ Class_Name(); } Class_Name::~Class_Name (){ delete[] a} Деструктор
  11. dscs.pro spbu.ru 12/13 сlass Class_Name{ private: int a; public: Class_Name();

    ~ Class_Name(); } Class_Name::~Class_Name (){ delete a} int main(){ Class_Name name = Class_Name(); name.a = 0; return 0; } int main(){ Class_Name name = Class_Name(); name.a = 0; delete name; return 0; } Вызов деструктора