Содержание
- 2. 2.1. Присваивание объектов // Пример присваивания объекта #include using namespace std; class myclass { int а,
- 3. 2.1. Присваивание объектов Рассмотрим несколько измененный класс strtype // Эта программа содержит ошибку!!! #include #include #include
- 4. 2.1. Присваивание объектов strtype::strtype(char *ptr) { len=strlen(ptr); p=(char *) malloc(len+1); if(!p) { cout exit(1); } strcpy(p,
- 5. 2.1. Присваивание объектов void strtype::show() { cout cout } int main() { strtype sl("Этo проверка"); strtype
- 6. 2.1. Присваивание объектов Этo проверка — длина: 12 Mнe нравится С++ — длина: 16 Этo проверка
- 7. 2.2. Передача объектов функциям #include using namespace std; class samp { int i; public: samp(int n)
- 8. 2.2. Передача объектов функциям int main() { samp a(10), b(2); cout cout sqr_it2(&a); cout return 0;
- 9. 2.2. Передача объектов функциям При создании копии объекта, когда он используется в качестве аргумента функции, конструктор
- 10. 2.2. Передача объектов функциям int main() { samp а (10); cout return 0; } Программа выводит
- 11. 2.3. Объекты в качестве возвращаемого значения функций // Возвращение объекта из функции #include #include using namespace
- 12. 2.3. Объекты в качестве возвращаемого значения функций samp input(){ char s[80]; samp str; cout cin >>
- 13. 2.3. Объекты в качестве возвращаемого значения функций Если функция возвращает объект, то для хранения возвращаемого значения
- 14. 2.3. Объекты в качестве возвращаемого значения функций void samp::set(char *str){ s = (char *) malloc(strlen(str)+1); if(!s){
- 15. 2.3. Объекты в качестве возвращаемого значения функций int main() { samp ob; ob = input(); //
- 16. 2.4. Дружественные функции Дружественные функции не являются членами класса, но тем не менее имеют доступ к
- 17. 2.4. Дружественные функции int main() { myclass obl(10, 2), ob2(13, 3); if(isfactor(obl) cout else cout if(isfactor(ob2)
- 18. 2.4. Дружественные функции 1. Дружественная функция не является членом класса, для которого она дружественна. obl.isfactor(); //
- 19. 2.4. Дружественные функции Разработаем абстракции легковых и грузовых автомобилей и функцию, сравнивающую их скорости. #include using
- 20. 2.4. Дружественные функции class truck { int weight; int speed; public: truck(int w, int s) {weight
- 21. 2.4. Дружественные функции int main() { int t; car c1(6, 55), c2(2, 120); truck t1(10000, 55),
- 22. 2.4. Дружественные функции Функция может быть членом одного класса и дружественной другому. Перепишем предыдущий пример так,
- 23. 2.4. Дружественные функции class truck { int weight; int speed; public: truck(int w, int s) {weight
- 24. 2.4. Дружественные функции int main() { int t; car c1(6, 55); truck t1(10000, 55); cout //
- 25. 2.5. Массивы объектов //Пример массива объектов: #include using namespace std; class samp { int а; public:
- 26. 2.5. Массивы объектов Если класс содержит конструктор, массив объектов может быть инициализирован. // Инициализация массива #include
- 27. 2.5. Массивы объектов int main() { samp ob[4] = {-1, -2, -3, -4}; int i; for(i=0;
- 28. 2.5. Массивы объектов // Создание двумерного массива объектов #include using namespace std; class samp { int
- 29. 2.5. Массивы объектов int main() { samp ob[4][2] = {1, 2, 3, 4, 5, 6, 7,
- 30. 2.5. Массивы объектов //Инициализация массива если конструктор имеет //более одного аргумента #include using namespace std; class
- 31. 2.5. Массивы объектов int main () { samp ob[4][2] = { samp(l,2), samp(3,4), samp(5,6), samp(7,8), samp(9,10),
- 32. 2.6. Указатель this Указатель this автоматически передается любой функции-члену при ее вызове и указывает на объект,
- 33. 2.6. Указатель this // Демонстрация указателя this #include #include using namespace std; class inventory { char
- 34. 2.6. Указатель this void inventory::show() { cout cout cout } int main() { inventory ob("wrench", 4.95,
- 35. 2.6. Указатель this // Демонстрация указателя this (вариант 2) #include #include using namespace std; class inventory
- 36. 2.6. Указатель this void inventory::show() { cout item; cout cost; cout on_hand } int main() {
- 37. 2.7. Операторы new и delete Обща форма записи операторов: p_var = new type; delete p_var; type
- 38. 2.7. Операторы new и delete Преимущества операторов new и delete перед функциями malloc() и free() :
- 39. 2.7. Операторы new и delete // Динамическое выделение памяти объектам #include using namespace std; class samp
- 40. 2.7. Операторы new и delete Форма инициализации динамически размещаемого объекта: p_var = new type (начальное_значение); Форма
- 41. 2.7. Операторы new и delete #include using namespace std; class samp { int i, j; public:
- 42. 2.7. Операторы new и delete // Динамическое выделение памяти для массива объектов #include using namespace std;
- 43. 2.7. Операторы new и delete int main () { samp *p; int i; p = new
- 44. 2.7. Операторы new и delete Предыдущая программа выводит на экран следующее: Содержимое [0] равно: 0 Содержимое
- 45. 2.7. Операторы new и delete // Динамическое выделение памяти для массива объектов #include using namespace std;
- 46. 2.7. Операторы new и delete int main() { samp *p; int i ; p = new
- 47. 2.7. Операторы new и delete Предыдущая программа выводит на экран следующее: Содержимое [0] равно: 0 Содержимое
- 48. 2.8. Ссылки Ссылка – это скрытый указатель. Ссылку допустимо использовать тремя способами: ссылку можно передать в
- 49. 2.8. Ссылки Разработаем функцию, в которой параметром является указатель #include using namespace std; void f(int *n);
- 50. 2.8. Ссылки Автоматизируем процесс передачи параметра в функцию с помощью параметра–ссылки #include using namespace std; void
- 51. 2.8. Ссылки Преимущества параметра–ссылки по сравнению с параметром–указателем: с практической точки зрения нет необходимости получать и
- 52. 2.8. Ссылки //Демонстрация ссылки #include using namespace std; void swapargs(int &x, int &y); int main() {
- 53. 2.8. Ссылки //Вариант функции swapargs() с указателями void swapargs(int *x, int *y){ int t; t =
- 54. 2.9. Передача ссылки на объект Особенности передачи объектов по ссылке: При передаче объекта по ссылке копия
- 55. 2.9. Передача ссылки на объект #include using namespace std; class myclass { int who; public: myclass(int
- 56. 2.9. Передача ссылки на объект int main () { myclass x(1); myclass y(2); f(x); f(y); return
- 57. 2.10. Ссылка в качестве возвращаемого значения функции #include using namespace std; int &f(); int x; int
- 58. 2.10. Ссылка в качестве возвращаемого значения функции Следует быть внимательным при возвращении ссылок, чтобы объект, на
- 59. 2.10. Ссылка в качестве возвращаемого значения функции // Пример защищенного массива #include #include using namespace std;
- 60. 2.10. Ссылка в качестве возвращаемого значения функции array::array(int num) { p = new char[num]; if(!p) {
- 61. 2.10. Ссылка в качестве возвращаемого значения функции char array::get(int i){ // Получение элемента массива if(i =size)
- 62. 2.11. Независимые ссылки и ограничения на применение ссылок Независимая ссылка — это ссылка, которая является другим
- 64. Скачать презентацию