🗊 Презентация Объектная модель С++

Категория: Образование
Нажмите для полного просмотра!
Объектная модель С++, слайд №1 Объектная модель С++, слайд №2 Объектная модель С++, слайд №3 Объектная модель С++, слайд №4 Объектная модель С++, слайд №5 Объектная модель С++, слайд №6 Объектная модель С++, слайд №7 Объектная модель С++, слайд №8 Объектная модель С++, слайд №9 Объектная модель С++, слайд №10 Объектная модель С++, слайд №11 Объектная модель С++, слайд №12 Объектная модель С++, слайд №13 Объектная модель С++, слайд №14 Объектная модель С++, слайд №15 Объектная модель С++, слайд №16 Объектная модель С++, слайд №17 Объектная модель С++, слайд №18 Объектная модель С++, слайд №19 Объектная модель С++, слайд №20 Объектная модель С++, слайд №21 Объектная модель С++, слайд №22 Объектная модель С++, слайд №23 Объектная модель С++, слайд №24 Объектная модель С++, слайд №25 Объектная модель С++, слайд №26 Объектная модель С++, слайд №27 Объектная модель С++, слайд №28 Объектная модель С++, слайд №29 Объектная модель С++, слайд №30 Объектная модель С++, слайд №31 Объектная модель С++, слайд №32 Объектная модель С++, слайд №33 Объектная модель С++, слайд №34 Объектная модель С++, слайд №35 Объектная модель С++, слайд №36 Объектная модель С++, слайд №37 Объектная модель С++, слайд №38 Объектная модель С++, слайд №39 Объектная модель С++, слайд №40 Объектная модель С++, слайд №41 Объектная модель С++, слайд №42 Объектная модель С++, слайд №43 Объектная модель С++, слайд №44 Объектная модель С++, слайд №45 Объектная модель С++, слайд №46 Объектная модель С++, слайд №47 Объектная модель С++, слайд №48 Объектная модель С++, слайд №49 Объектная модель С++, слайд №50 Объектная модель С++, слайд №51 Объектная модель С++, слайд №52 Объектная модель С++, слайд №53 Объектная модель С++, слайд №54 Объектная модель С++, слайд №55 Объектная модель С++, слайд №56 Объектная модель С++, слайд №57 Объектная модель С++, слайд №58 Объектная модель С++, слайд №59 Объектная модель С++, слайд №60 Объектная модель С++, слайд №61 Объектная модель С++, слайд №62

Содержание

Вы можете ознакомиться и скачать презентацию на тему Объектная модель С++. Доклад-сообщение содержит 62 слайдов. Презентации для любого класса можно скачать бесплатно. Если материал и наш сайт презентаций Mypresentation Вам понравились – поделитесь им с друзьями с помощью социальных кнопок и добавьте в закладки в своем браузере.

Слайды и текст этой презентации


Слайд 1


Глава 5. Объектная модель С++ МГТУ им. Н.Э. Баумана Факультет Информатика и системы управления Кафедра Компьютерные системы и сети Лектор: д.т.н.,...
Описание слайда:
Глава 5. Объектная модель С++ МГТУ им. Н.Э. Баумана Факультет Информатика и системы управления Кафедра Компьютерные системы и сети Лектор: д.т.н., проф. Иванова Галина Сергеевна

Слайд 2


5.1 Описание класса Формат описания класса: class { private: ; protected: ; public: ; }; Пример: Объект – строка (Ex5_01)
Описание слайда:
5.1 Описание класса Формат описания класса: class { private: ; protected: ; public: ; }; Пример: Объект – строка (Ex5_01)

Слайд 3


Пример описания класса (файл Slovo.h) class TSlovo { private: int Len; char *Ref; protected: int Pos; public: TSlovo(char *ref,int pos=0);...
Описание слайда:
Пример описания класса (файл Slovo.h) class TSlovo { private: int Len; char *Ref; protected: int Pos; public: TSlovo(char *ref,int pos=0); ~TSlovo(void) {delete Ref;} char GetCh(void) { char Chr=Pos

Слайд 4


Пример описания методов (файл Slovo.cpp) #include "stdafx.h" #include "slovo.h" #include #include TSlovo::TSlovo(char *ref,int...
Описание слайда:
Пример описания методов (файл Slovo.cpp) #include "stdafx.h" #include "slovo.h" #include #include TSlovo::TSlovo(char *ref,int pos):Pos(pos) { Len=strlen(ref); Ref=new char[Len+1]; strcpy(Ref,ref); } void TSlovo::PrintPos(void) { std::cout

Слайд 5


5.2 Объявление объектов и обращение к полям ; Примеры: а) TPoint a,*b, c[5]; /* класс описан без конструктора или с конструктором без параметров */...
Описание слайда:
5.2 Объявление объектов и обращение к полям ; Примеры: а) TPoint a,*b, c[5]; /* класс описан без конструктора или с конструктором без параметров */ б) TSlovo D("Это строка", 4); // конструктор с параметрами . -> [] . Self (Паскаль)  this (С++) Пример: this->Pos

Слайд 6


Тестирующая программа #include "stdafx.h" #include #include ″Slovo.h" int main(int argc, char* argv[]) { TSlovo Greet("Hello...
Описание слайда:
Тестирующая программа #include "stdafx.h" #include #include ″Slovo.h" int main(int argc, char* argv[]) { TSlovo Greet("Hello World",6); char Chr; while (Chr=Greet.GetCh()) cout

Слайд 7


5.3 Наследование class : {…};
Описание слайда:
5.3 Наследование class : {…};

Слайд 8


Пример наследования Ex5_02 (Text.h) #include "f:\iva\primer.vc\lection\oopr1\slovo.h" #include class TText:public TSlovo { private: int...
Описание слайда:
Пример наследования Ex5_02 (Text.h) #include "f:\iva\primer.vc\lection\oopr1\slovo.h" #include class TText:public TSlovo { private: int Pos; public: TText(char *ref,int pos=0):TSlovo(ref),Pos(pos) {} void SetPos() { TSlovo::Pos=Pos; } void PrintPos(); }; void TText::PrintPos(){cout

Слайд 9


Тестирующая программа #include "stdafx.h" #include "Text.h" int main(int argc, char* argv[]) { TText Greet("Hello...
Описание слайда:
Тестирующая программа #include "stdafx.h" #include "Text.h" int main(int argc, char* argv[]) { TText Greet("Hello World",6); char Chr; while (Chr=Greet.GetCh()) cout

Слайд 10


5.4 Полиморфизм
Описание слайда:
5.4 Полиморфизм

Слайд 11


Полиморфизм В Паскале: простой полиморфизм сложный полиморфизм Пример использования сложного полиморфизма (Ex5_03): #include "stdafx.h"...
Описание слайда:
Полиморфизм В Паскале: простой полиморфизм сложный полиморфизм Пример использования сложного полиморфизма (Ex5_03): #include "stdafx.h" #include "f:\iva\primer.vc\lection\oopr11\Ttext.h" int main(int argc, char* argv[]) { TSlovo SGreet("HELLO!!!"), *Ref=&SGreet; TText Greet("Hello World",6); Ref->PrintPos(); cout

Слайд 12


Использование пространств имен для перегрузки методов класса (Ex5_111) #include "stdafx.h" #include class A { public: void func(int ch); };...
Описание слайда:
Использование пространств имен для перегрузки методов класса (Ex5_111) #include "stdafx.h" #include class A { public: void func(int ch); }; class B : public A { public: void func(char *str); using A::func; // перегрузить B::func }; void A::func(int ch) // метод базового класса { std::cout

Слайд 13


5.5 Инициализация общих полей объектов при отсутствии конструкторов Пример: class TPoint {public: int x,y; ...}; int main() { TPoint A = {2,3};...
Описание слайда:
5.5 Инициализация общих полей объектов при отсутствии конструкторов Пример: class TPoint {public: int x,y; ...}; int main() { TPoint A = {2,3}; TPoint *pB = {5,3}; TPoint C[]= {{4,5},{2,8},{7,6}}; ... }

Слайд 14


5.6 Конструкторы. Список инициализации Пример (Ex5_4): class TPoint { private: int x,y; public: TPoint(int ax,int ay){x=ax;y=ay;} TPoint(){}...
Описание слайда:
5.6 Конструкторы. Список инициализации Пример (Ex5_4): class TPoint { private: int x,y; public: TPoint(int ax,int ay){x=ax;y=ay;} TPoint(){} SetPoint(int ax,int ay) {x=ax;y=ay;} ...}; int main() { TPoint A, B(2,3), C[5], D[2] = {TPoint(2,4),TPoint(4,5)}, *E, *I = new TPoint(4,6), *M = new TPoint[3], *S[3];

Слайд 15


Распределение/освобождение памяти и инициализация объектов в программе A.SetPoint(2,3); A.Print(); B.Print(); for (i=0;iPrint(); for (i=0;i
Описание слайда:
Распределение/освобождение памяти и инициализация объектов в программе A.SetPoint(2,3); A.Print(); B.Print(); for (i=0;iPrint(); for (i=0;i

Слайд 16


Список инициализации. Инициализация объектных полей Формат элемента списка инициализации: () Примеры: a) TPoint(int ax,ay): x(ax),y(ay) {} б) class...
Описание слайда:
Список инициализации. Инициализация объектных полей Формат элемента списка инициализации: () Примеры: a) TPoint(int ax,ay): x(ax),y(ay) {} б) class TLine { private: const int x; int &y; TPoint t; public: TLine(int ax,int ay,int tx,int ty): x(ax),y(ay),t(tx,ty){} TLine(){} ...};

Слайд 17


5.7 Копирующий конструктор Автоматически вызывается: а) при использовании объявлений типа TPoint A(2,5),B=A; б) при передаче параметров-объектов по...
Описание слайда:
5.7 Копирующий конструктор Автоматически вызывается: а) при использовании объявлений типа TPoint A(2,5),B=A; б) при передаче параметров-объектов по значению, например: void Print(TPoint R) {…} Формат: (const &){…} Примеры: а) TPoint(const TPoint &Obj) {x=Obj.x; y=Obj.y;} б) TPoint(const TPoint &Obj) {x=Obj.x; y=2*Obj.y;}

Слайд 18


Пример обязательного определения копирующего конструктора (Ex5_05) #include "stdafx.h" #include class TNum { public: int *pn; TNum(int...
Описание слайда:
Пример обязательного определения копирующего конструктора (Ex5_05) #include "stdafx.h" #include class TNum { public: int *pn; TNum(int n){puts("new pn"); pn=new int(n);} TNum(const TNum &Obj) {puts("copy new pn"); pn=new int(*Obj.pn);} ~TNum(){puts("delete pn");delete pn;} }; void Print(TNum b) { printf("%d ",*b.pn); } int main(int argc, char* argv[]) { TNum A(1); Print(A); return 0; }

Слайд 19


5.8 Конструкторы и деструкторы производных классов A(){…} B():A(),{} C():B(),{}
Описание слайда:
5.8 Конструкторы и деструкторы производных классов A(){…} B():A(),{} C():B(),{}

Слайд 20


Вызов конструкторов и деструкторов для объектов производных классов (Ex5_06) #include "stdafx.h" #include class TNum { public: int n;...
Описание слайда:
Вызов конструкторов и деструкторов для объектов производных классов (Ex5_06) #include "stdafx.h" #include class TNum { public: int n; TNum(int an):n(an) {puts("TNum(an)");} TNum() {puts("TNum()");} ~TNum(){puts("~TNum");} }; class TNum2:public TNum { public: int nn; TNum2(int an):nn(an) {puts("TNum2(an)");} ~TNum2(){puts("~TNum2");} }; int main(int argc, char* argv[]) {TNum2 A(1); return 0;}

Слайд 21


5.9 Абстрактные методы и классы Абстрактный метод. class AClass { … virtual int Fun(int,int)=0; } Класс, содержащий абстрактный метод, называется...
Описание слайда:
5.9 Абстрактные методы и классы Абстрактный метод. class AClass { … virtual int Fun(int,int)=0; } Класс, содержащий абстрактный метод, называется абстрактным. Объекты абстрактного класса создавать запрещено !

Слайд 22


5.10 Множественное и виртуальное наследование
Описание слайда:
5.10 Множественное и виртуальное наследование

Слайд 23


Пример множественного виртуального наследования #include "stdafx.h" #include class TA { protected: int Fix; public: TA() { cout
Описание слайда:
Пример множественного виртуального наследования #include "stdafx.h" #include class TA { protected: int Fix; public: TA() { cout

Слайд 24


Пример множественного виртуального наследования (2) class TC:virtual private TA { public: int Two; TC() { cout
Описание слайда:
Пример множественного виртуального наследования (2) class TC:virtual private TA { public: int Two; TC() { cout

Слайд 25


5.11 Приведение типов объекта В С++ для приведения типов используют: 1) () - используется в Си/С++ для любых типов, ничего не проверяет; 2)...
Описание слайда:
5.11 Приведение типов объекта В С++ для приведения типов используют: 1) () - используется в Си/С++ для любых типов, ничего не проверяет; 2) static_cast ()- используется в С++ для любых типов, ничего не проверяет; 3) reinterpret_cast ()- используется в С++ для указателей, ничего не проверяет; 4) dynamic_cast () – используется в С++ для полиморфных классов, требует указания опции компилятора /GR (Project/Settings…), если приведение невозможно, то возвращает NULL.

Слайд 26


Пример приведения типов объектов (Ex5_07) #include "stdafx.h" #include #include class TA { protected: char c; public: TA(char ac):c(ac){}...
Описание слайда:
Пример приведения типов объектов (Ex5_07) #include "stdafx.h" #include #include class TA { protected: char c; public: TA(char ac):c(ac){} virtual void func(){cout

Слайд 27


Пример приведения типов объектов(2) int main(int argc, char* argv[]) { TA *pA=new TA('A'),*pC=new TB("AB"); TB *pB=new TB("AC");...
Описание слайда:
Пример приведения типов объектов(2) int main(int argc, char* argv[]) { TA *pA=new TA('A'),*pC=new TB("AB"); TB *pB=new TB("AC"); ((TA *)pB)->func(); reinterpret_cast(pB)->func(); static_cast(pB)->func(); dynamic_cast(pB)->func(); ((TB *)pC)->func(); reinterpret_cast(pC)->func(); static_cast(pC)->func(); dynamic_cast(pC)->func(); ((TB *)pA)->func(); reinterpret_cast(pA)->func(); static_cast(pA)->func(); // dynamic_cast(pA)->func(); if (TB *pD=dynamic_cast(pA)) pD->func(); else cout

Слайд 28


5.12 Контейнер «Двусвязный список» (Ex5_08)
Описание слайда:
5.12 Контейнер «Двусвязный список» (Ex5_08)

Слайд 29


Контейнер «Двусвязный список»(2)
Описание слайда:
Контейнер «Двусвязный список»(2)

Слайд 30


Файл Element.h #include class TElement { public: TElement *pre,*suc; TElement() { pre=suc=NULL;} virtual ~TElement() { puts("Delete...
Описание слайда:
Файл Element.h #include class TElement { public: TElement *pre,*suc; TElement() { pre=suc=NULL;} virtual ~TElement() { puts("Delete TElement.");} virtual void Print()=0; }; class TSpisok { private: TElement *first,*last,*cur; public: TSpisok() {first=last=cur=NULL;} ~TSpisok(); void Add(TElement *e); TElement *Del(); void ForEach(void (*f)(TElement *e)); TElement *First(){return cur=first;} TElement *Next(){return cur=cur->suc;} TElement *Last(){return cur=last;} TElement *Previous(){return cur=cur->pre;} };

Слайд 31


Файл Element.cpp #include "stdafx.h" #include "Element.h" TSpisok::~TSpisok() { puts("Delete TSpisok"); while...
Описание слайда:
Файл Element.cpp #include "stdafx.h" #include "Element.h" TSpisok::~TSpisok() { puts("Delete TSpisok"); while ((cur=Del())!=NULL) { cur->Print(); delete(cur); } } void TSpisok::Add(TElement *e) { if (first==NULL) first=last=e; else { e->suc=first; first->pre=e; first=e; } }

Слайд 32


Файл Element.cpp (2) TElement *TSpisok::Del(void) { TElement *temp=last; if (last!=NULL) {last=last->pre; if (last!=NULL) last->suc=NULL; } if...
Описание слайда:
Файл Element.cpp (2) TElement *TSpisok::Del(void) { TElement *temp=last; if (last!=NULL) {last=last->pre; if (last!=NULL) last->suc=NULL; } if (last==NULL) first=NULL; return temp; } void TSpisok::ForEach(void (*f)(TElement *e)) { cur=first; while (cur!=NULL) {(*f)(cur); cur=cur->suc; } }

Слайд 33


Файл Num.h #include "Element.h" class TNum:public TElement { public: int num; TNum(int n):TElement(),num(n) {} ~TNum() { puts("Delete...
Описание слайда:
Файл Num.h #include "Element.h" class TNum:public TElement { public: int num; TNum(int n):TElement(),num(n) {} ~TNum() { puts("Delete TNum.");} void Print() { printf("%d ",num); } }; class TChar:public TElement { public: char ch; TChar(char c):TElement(),ch(c) {} ~TChar() { puts("Delete TChar.");} void Print() { printf("%c ",ch);} }; void Show(TElement *e); Файл Num.cpp #include "stdafx.h" #include "Num.h" void Show(TElement *e) { e->Print();}

Слайд 34


Тестирующая программа #include "stdafx.h" #include "Num.h" #include #include TSpisok N; int main(int argc, char* argv[]) { char...
Описание слайда:
Тестирующая программа #include "stdafx.h" #include "Num.h" #include #include TSpisok N; int main(int argc, char* argv[]) { char str[10]; int k,i; TElement *p; while(printf("Input numbers, strings or :"), scanf("%s",str),strcmp(str,"end")) { k=atoi(str); if (k||(strlen(str)==1 && str[0]=='0')) p=new TNum(k); else p=new TChar(str[0]); N.Add(p); } puts("All list:"); N.ForEach(Show);

Слайд 35


Тестирующая программа(2) p=N.First(); k=0; while (p!=NULL) { if (TNum *q=dynamic_cast(p)) k+=q->num; // установить создание RTTI (/GR в...
Описание слайда:
Тестирующая программа(2) p=N.First(); k=0; while (p!=NULL) { if (TNum *q=dynamic_cast(p)) k+=q->num; // установить создание RTTI (/GR в Project\Settings...) p=N.Next(); } printf("Summa= %d\n",k); p=N.Last(); i=0; while (p!=NULL) {if (TChar *q=dynamic_cast(p)) str[i++]=q->ch; p=N.Previous(); } str[i]='\0'; printf("String= %s\n",str); return 0; }

Слайд 36


5.13 Статические компоненты класса Объявляются с описателем Static Статические поля являются общими для всех объектов класса и существуют даже при...
Описание слайда:
5.13 Статические компоненты класса Объявляются с описателем Static Статические поля являются общими для всех объектов класса и существуют даже при отсутствии объектов. Инициализация статических полей в определении класса не допустима. Статические методы не получают параметра this и, следовательно, не могут без указания объекта обращаться к нестатическим полям. Для доступа к статическим компонентам вне компонентных функций используют квалификатор ::

Слайд 37


Статические компоненты класса (Ex5_09) Пример. Создать список объектов Файл Statico.h #include #include class TPoint { public: char ch1,ch2; static...
Описание слайда:
Статические компоненты класса (Ex5_09) Пример. Создать список объектов Файл Statico.h #include #include class TPoint { public: char ch1,ch2; static TPoint *first, *last; TPoint *next; TPoint(char ach1,char ach2); void Draw() { printf("%c %c \n",ch1,ch2); } static void DrawAll(); };

Слайд 38


Файл Statico.cpp #include "stdafx.h" #include "statico.h" TPoint *TPoint::first=NULL,*TPoint::last=NULL; TPoint::TPoint(char...
Описание слайда:
Файл Statico.cpp #include "stdafx.h" #include "statico.h" TPoint *TPoint::first=NULL,*TPoint::last=NULL; TPoint::TPoint(char ach1,char ach2) { ch1=ach1; ch2=ach2; next=NULL; if(first==NULL)first=this; else last->next=this; last=this; } void TPoint::DrawAll() { TPoint *p=first; if(p==NULL)return; do {p->Draw(); p=p->next;} while(p!=NULL); }

Слайд 39


Тестирующая программа #include "stdafx.h" #include "statico.h" int main(int argc, char* argv[]) { TPoint...
Описание слайда:
Тестирующая программа #include "stdafx.h" #include "statico.h" int main(int argc, char* argv[]) { TPoint A('S','C'),B('W','O'),C('M','S'); if(TPoint::first!=NULL) TPoint::DrawAll(); return 0; }

Слайд 40


5.14 Дружественные функции и классы Описываются с описателем friend, что обеспечивает доступ к внутренним компонентам класса Пример: class TPoint...
Описание слайда:
5.14 Дружественные функции и классы Описываются с описателем friend, что обеспечивает доступ к внутренним компонентам класса Пример: class TPoint {private: int x,y; public:... friend void Show(TPoint A); // функция }; void Show(TPoint A){cout

Слайд 41


5.15 Переопределение операций Операции Типы функций-операций: 1. Независимая функция-операция а) operator@() б) operator@(,) 2. Компонентная...
Описание слайда:
5.15 Переопределение операций Операции Типы функций-операций: 1. Независимая функция-операция а) operator@() б) operator@(,) 2. Компонентная функция-операция а) operator@( ) // Операнд = Объект б) operator@() // Операнд1 = Объект Формы вызова а) стандартная б) операторная operator@() @ operator@(,) @ . operator@( ) @ . operator@() @

Слайд 42


Переопределение операций 1. Можно переопределять только операции, параметры которых –объекты. 2. Не разрешается переопределение *, sizeof, ? :, #,...
Описание слайда:
Переопределение операций 1. Можно переопределять только операции, параметры которых –объекты. 2. Не разрешается переопределение *, sizeof, ? :, #, ##, ::, Class::. 3. Операции =, [ ], ( ) можно переопределять только в составе класса 4. При переопределении операций нельзя изменить ее приоритет и ассоциативность.

Слайд 43


Пример 1. Класс «Точка» (Ex5_10) Файл Tpoint.h #include class TPoint{ private: float x,y; public: TPoint(float ax,float ay):x(ax),y(ay) {cout
Описание слайда:
Пример 1. Класс «Точка» (Ex5_10) Файл Tpoint.h #include class TPoint{ private: float x,y; public: TPoint(float ax,float ay):x(ax),y(ay) {cout

Слайд 44


Файл Tpoint.cpp #include "stdafx.h" #include "Tpoint.h" TPoint& TPoint::operator+=(TPoint &p) { x+=p.x; y+=p.y; cout
Описание слайда:
Файл Tpoint.cpp #include "stdafx.h" #include "Tpoint.h" TPoint& TPoint::operator+=(TPoint &p) { x+=p.x; y+=p.y; cout

Слайд 45


Тестирующая программа #include "stdafx.h" #include "Tpoint.h" int main(int argc, char* argv[]) { TPoint p(2,3),q(4,5),r(7,8);...
Описание слайда:
Тестирующая программа #include "stdafx.h" #include "Tpoint.h" int main(int argc, char* argv[]) { TPoint p(2,3),q(4,5),r(7,8); p+=r; p.Out(); q=p+r; q.Out(); return 0; }

Слайд 46


Пример 2. Класс «Строка»(Ex5_11) Файл S.h: #include #include #include #include class String { private: char *str,name; int len; public: String(int...
Описание слайда:
Пример 2. Класс «Строка»(Ex5_11) Файл S.h: #include #include #include #include class String { private: char *str,name; int len; public: String(int Len,char Name); String(char *vs,char Name); String(String &S); ~String(); int Length(){return len;} char operator[](int n) {return ((n>=0)&&(n

Слайд 47


Файл S.cpp #include "stdafx.h" #include "s.h" String::String(int Len,char Name){ len=Len; str=new char[len+1]; str[0]='\0';...
Описание слайда:
Файл S.cpp #include "stdafx.h" #include "s.h" String::String(int Len,char Name){ len=Len; str=new char[len+1]; str[0]='\0'; name=Name; cout

Слайд 48


Файл S.cpp (2) String::String(String &S) { len=S.Length(); str=new char[len+1]; strcpy(str,S.str); name='K'; cout
Описание слайда:
Файл S.cpp (2) String::String(String &S) { len=S.Length(); str=new char[len+1]; strcpy(str,S.str); name='K'; cout

Слайд 49


Файл S.cpp (3) String String::operator+(String &A) { cout
Описание слайда:
Файл S.cpp (3) String String::operator+(String &A) { cout

Слайд 50


Файл S.cpp (3) String& String::operator=(String &S) { cout
Описание слайда:
Файл S.cpp (3) String& String::operator=(String &S) { cout

Слайд 51


Тестирующая программа #include "stdafx.h" #include "s.h" int main(int argc, char* argv[]) { String...
Описание слайда:
Тестирующая программа #include "stdafx.h" #include "s.h" int main(int argc, char* argv[]) { String A("ABC",'A'),B("DEF",'B'),C(6,'C'); C.print(); C=A+B; C.print(); C=C+'a'; C.print(); return 0; }

Слайд 52


Выполнение операций
Описание слайда:
Выполнение операций

Слайд 53


5.16 Параметризованные классы (шаблоны) Формат описания шаблона класса: template Формат объявления объектов: () Пример. Динамический массив (Ex5_12)
Описание слайда:
5.16 Параметризованные классы (шаблоны) Формат описания шаблона класса: template Формат объявления объектов: () Пример. Динамический массив (Ex5_12)

Слайд 54


Файл A.h #include template class TArray { type * content; int size; public: TArray(int asize) { content = new type [size=asize];} ~TArray (){delete...
Описание слайда:
Файл A.h #include template class TArray { type * content; int size; public: TArray(int asize) { content = new type [size=asize];} ~TArray (){delete [] content;} type & operator[] (int x) { if ((x=size)) { cerr

Слайд 55


Тестирующая программа #include "stdafx.h" #include "A.h" #include int main(int argc, char* argv[]) {int i; TArray int_a(5);...
Описание слайда:
Тестирующая программа #include "stdafx.h" #include "A.h" #include int main(int argc, char* argv[]) {int i; TArray int_a(5); TArray char_a(5); for (i=0;i

Слайд 56


5.17 Параметризованные функции Формат описания шаблона функции: template Пример. Шаблон функции определения максимального (Ex5_13) #include...
Описание слайда:
5.17 Параметризованные функции Формат описания шаблона функции: template Пример. Шаблон функции определения максимального (Ex5_13) #include "stdafx.h" #include #include template T max(T x, T y){ return(x>y)?x:y;} char * max(char * x, char * y) { return strcmp(x,y) > 0? x:y;}

Слайд 57


Тестирующая программа int main(int argc, char* argv[]) { int a=1,b=2; char c='a', d='m'; float e=123, f=456; double p=234.567,t=789.23; char...
Описание слайда:
Тестирующая программа int main(int argc, char* argv[]) { int a=1,b=2; char c='a', d='m'; float e=123, f=456; double p=234.567,t=789.23; char str1[]="AVERO", str2[]="AVIER"; cout

Слайд 58


Контейнер на основе шаблона (Ex5_14)
Описание слайда:
Контейнер на основе шаблона (Ex5_14)

Слайд 59


Объявление шаблона класса #include template class arrayob { type **contents; int size; int n; public: arrayob(int number){contents=new type...
Описание слайда:
Объявление шаблона класса #include template class arrayob { type **contents; int size; int n; public: arrayob(int number){contents=new type *[size=number];} ~arrayob (); int sizeofmas(){return n;} void add(type *p) { if(n==size)cerr

Слайд 60


Объявление шаблона функции template arrayob ::~arrayob () {for(int i=0;i
Описание слайда:
Объявление шаблона функции template arrayob ::~arrayob () {for(int i=0;i

Слайд 61


Файл N.h #include #include class TNum { public: int num; TNum(int n):num(n) {} virtual ~TNum(void) {cout
Описание слайда:
Файл N.h #include #include class TNum { public: int num; TNum(int n):num(n) {} virtual ~TNum(void) {cout

Слайд 62


Тестирующая программа #include "stdafx.h" #include #include #include "A.h" #include "N.h" arrayob ob_a(5); int main(int...
Описание слайда:
Тестирующая программа #include "stdafx.h" #include #include #include "A.h" #include "N.h" arrayob ob_a(5); int main(int argc, char* argv[]) { int n,i; char S[10]; for(i=0;i



Похожие презентации
Mypresentation.ru
Загрузить презентацию