🗊Презентация Язык C++

Нажмите для полного просмотра!
Язык C++, слайд №1Язык C++, слайд №2Язык C++, слайд №3Язык C++, слайд №4Язык C++, слайд №5Язык C++, слайд №6Язык C++, слайд №7Язык C++, слайд №8Язык C++, слайд №9Язык C++, слайд №10Язык C++, слайд №11Язык C++, слайд №12Язык C++, слайд №13Язык C++, слайд №14Язык C++, слайд №15

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

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


Слайд 1





C++
exceptions, rtti, templates
Описание слайда:
C++ exceptions, rtti, templates

Слайд 2





Исключения 1
Синтаксис:
try {
}
catch (тип имя) {
}
сatch (тип) {
}
catch(…) {
}
Порождение:
throw [выражение];
Описание слайда:
Исключения 1 Синтаксис: try { } catch (тип имя) { } сatch (тип) { } catch(…) { } Порождение: throw [выражение];

Слайд 3





Исключения 2
Пример:
void* malloc(size_t n) {
	void* p = HeapAlloc(GetProcessHeap(), 0, n);
	if(!p) throw “No memory”;
	return p;
}
void func {
	char* p1 = (char*)malloc(100);
	char* p2 = (char*)malloc(100);
	delete p2;
	delete p1;
}
try {
	func();
} catch(const char* p) {
	printf(“Error: %s”, p);
}
Описание слайда:
Исключения 2 Пример: void* malloc(size_t n) { void* p = HeapAlloc(GetProcessHeap(), 0, n); if(!p) throw “No memory”; return p; } void func { char* p1 = (char*)malloc(100); char* p2 = (char*)malloc(100); delete p2; delete p1; } try { func(); } catch(const char* p) { printf(“Error: %s”, p); }

Слайд 4





Преобразования типов 
Синтаксис:
1) тип (выражение);
2) (тип) выражение;
Примеры:
const char* p = “asdf”; int i; char* a;
1) i = p;
2) i = (int)p;
3) i = int(p);
4) a = p;
5) a = (char*)p;
6) a = char*(p);
Описание слайда:
Преобразования типов Синтаксис: 1) тип (выражение); 2) (тип) выражение; Примеры: const char* p = “asdf”; int i; char* a; 1) i = p; 2) i = (int)p; 3) i = int(p); 4) a = p; 5) a = (char*)p; 6) a = char*(p);

Слайд 5





const_cast
Синтаксис:
const_cast <тип> (выражение);
Выражение: константный указатель
Тип: тот же что и тип выражения но без const
Возвращаемое значение:  переменую типа ‘тип’
Пример:
const char* p = “asdf”;
char* a = const_cast<char*>(p);
Описание слайда:
const_cast Синтаксис: const_cast <тип> (выражение); Выражение: константный указатель Тип: тот же что и тип выражения но без const Возвращаемое значение: переменую типа ‘тип’ Пример: const char* p = “asdf”; char* a = const_cast<char*>(p);

Слайд 6





dynamic_cast 1
Синтаксис:
dynamic_cast <тип> (выражение);
Выражение: указатель или ссылка на класс
Тип: базовый или производный от типа выражения
Возвращаемое значение: переменную типа ‘тип’; при
ошибке: 1) ноль (если ‘тип’ – указатель)
2) исключение bad_cast (если ‘тип’ – ссылка)
Пример: // Повышающее преобразование (upcast)
class B { };
class C : public B { };
C* c = new C();
B* b = dynamic_cast<B*>(c);
Описание слайда:
dynamic_cast 1 Синтаксис: dynamic_cast <тип> (выражение); Выражение: указатель или ссылка на класс Тип: базовый или производный от типа выражения Возвращаемое значение: переменную типа ‘тип’; при ошибке: 1) ноль (если ‘тип’ – указатель) 2) исключение bad_cast (если ‘тип’ – ссылка) Пример: // Повышающее преобразование (upcast) class B { }; class C : public B { }; C* c = new C(); B* b = dynamic_cast<B*>(c);

Слайд 7





dynamic_cast 2
Примеры: // понижающее преобразование (downcast)
1) class A { };
class B : public A { };
A* a = new A();
B* b = dynamic_cast<B*>(a);
2) class A {
	public: virtual void Test() {}
};
class B : public A {
	public: virtual void Test() {}
};
A* a = new A();
B* b = dynamic_cast<B*>(a);
Описание слайда:
dynamic_cast 2 Примеры: // понижающее преобразование (downcast) 1) class A { }; class B : public A { }; A* a = new A(); B* b = dynamic_cast<B*>(a); 2) class A { public: virtual void Test() {} }; class B : public A { public: virtual void Test() {} }; A* a = new A(); B* b = dynamic_cast<B*>(a);

Слайд 8





dynamic_cast 3
Пример: // понижающее преобразование (downcast)
#include <typeinfo>
class B {
	public: virtual void Test();
};
class C : public B { };
void func(B& b) {
	try {
		С& с = dynamic_cast<C&>(b);
	} catch (bad_cast) {
	}
}
B* b = new B(); func(*b);  // исключение
C* c = new C(); func(*c);
Описание слайда:
dynamic_cast 3 Пример: // понижающее преобразование (downcast) #include <typeinfo> class B { public: virtual void Test(); }; class C : public B { }; void func(B& b) { try { С& с = dynamic_cast<C&>(b); } catch (bad_cast) { } } B* b = new B(); func(*b); // исключение C* c = new C(); func(*c);

Слайд 9





dynamic_cast 4
Пример: // перекрёстное преобразование (crosscast)
class A {
	public: virtual void Test() {}
};
class B : public A {
};
class C : public A {
};
void func(C* c) {
	B* b = dynamic_cast<B*>(c);
}
B* b = new B();
func((C*)b);
Описание слайда:
dynamic_cast 4 Пример: // перекрёстное преобразование (crosscast) class A { public: virtual void Test() {} }; class B : public A { }; class C : public A { }; void func(C* c) { B* b = dynamic_cast<B*>(c); } B* b = new B(); func((C*)b);

Слайд 10





dynamic_cast 5
Пример: // перекрёстное преобразование (crosscast)
class B {
	public: virtual void Test1() {}
};
class C {
	public: virtual void Test2() {}
};
class D : public B, public C {
};
void func(B* b) {
	C* c = dynamic_cast<C*>(b);
}
D* d = new D();
func(dynamic_cast<B*>(d));
Описание слайда:
dynamic_cast 5 Пример: // перекрёстное преобразование (crosscast) class B { public: virtual void Test1() {} }; class C { public: virtual void Test2() {} }; class D : public B, public C { }; void func(B* b) { C* c = dynamic_cast<C*>(b); } D* d = new D(); func(dynamic_cast<B*>(d));

Слайд 11





static_cast 1
Синтаксис:
static_cast <тип> (выражение);
Выражение: целые, вещественные, перечисляемые типы; указатели и ссылки в одной иерархии 
Возвращаемое значение:  переменую типа ‘тип’
Пример:
float f = 10.0;
int i = static_cast<int>(f);
Описание слайда:
static_cast 1 Синтаксис: static_cast <тип> (выражение); Выражение: целые, вещественные, перечисляемые типы; указатели и ссылки в одной иерархии Возвращаемое значение: переменую типа ‘тип’ Пример: float f = 10.0; int i = static_cast<int>(f);

Слайд 12





static_cast 2
Примеры:
class B { };
class C: public B { };
1) C c;
B* pb = static_cast<B*>(&c);
2) B b;
C& rc = static_cast<C&>(b);
Описание слайда:
static_cast 2 Примеры: class B { }; class C: public B { }; 1) C c; B* pb = static_cast<B*>(&c); 2) B b; C& rc = static_cast<C&>(b);

Слайд 13





reinterpret_cast
Синтаксис:
reinterpret_cast <тип> (выражение);
Выражение: любое
Тип: любой
Возвращаемое значение:  переменная типа ‘тип’
Примеры:
char* p = reinterpret_cast<char*>(malloc(100));
long l = reinterpret_cast<long>(p);
Описание слайда:
reinterpret_cast Синтаксис: reinterpret_cast <тип> (выражение); Выражение: любое Тип: любой Возвращаемое значение: переменная типа ‘тип’ Примеры: char* p = reinterpret_cast<char*>(malloc(100)); long l = reinterpret_cast<long>(p);

Слайд 14





typeid
Синтаксис:
1) typeid(тип);
2) typeid(выражение);
Примеры:
#include <typeinfo>
class B {
	public: virtual void Test(){ }
};
class C: public B { };
C* c = new C();
B* b = c;
if(typeid(c) == typeid(C*)) {
	C* cc = dynamic_cast<C*>(b);
}
printf("%s|%s|%s", typeid(int).name(), typeid(c).name(), typeid(*c).name());
Описание слайда:
typeid Синтаксис: 1) typeid(тип); 2) typeid(выражение); Примеры: #include <typeinfo> class B { public: virtual void Test(){ } }; class C: public B { }; C* c = new C(); B* b = c; if(typeid(c) == typeid(C*)) { C* cc = dynamic_cast<C*>(b); } printf("%s|%s|%s", typeid(int).name(), typeid(c).name(), typeid(*c).name());

Слайд 15


Язык C++, слайд №15
Описание слайда:



Теги Язык C++
Похожие презентации
Mypresentation.ru
Загрузить презентацию