Пример реализации арифметических операциях на С++




Сайт создан в системе uCoz

Вернуться к Оглавлению

На примере арифметических операций показывается использование основных концепций языка С++, а именно:

  • инкапсуляция;
  • полиморфизм;
  • наследование.

Кроме этого, показан пример использования шаблонов и перегрузки операторов. Код собирался компилятором g++, версии 4.3.2, а использовался в ОС Debian GNU/Linux. Имя исполняемого модуля программы: cpp_polymorphos. Как видно из названия программы, она задумывалась с начало как пример лишь применение на практике полиморфизма, но в итоге она включила в себя почти все концепции ООП, которые используется сегодня в С++.

Исходный код cpp_polymorphos

Makefile
cpp_polymorphos.h
cpp_polymorphos.cc

Дамп выполнения cpp_polymorphos в Valgrind

my_user@engine:~/Work/C_plus_plus/examples$ valgrind --leak-check=full ./cpp_polymorphos
==9826== Memcheck, a memory error detector.
==9826== Copyright (C) 2002-2007, and GNU GPL'd, by Julian Seward et al.
==9826== Using LibVEX rev 1854, a library for dynamic binary translation.
==9826== Copyright (C) 2004-2007, and GNU GPL'd, by OpenWorks LLP.
==9826== Using valgrind-3.3.1-Debian, a dynamic binary instrumentation framework.
==9826== Copyright (C) 2000-2007, and GNU GPL'd, by Julian Seward et al.
==9826== For more details, rerun with: -v
==9826==
absolute result value1: 122279
absolute result value2: 9.973e-06
absolute result value3: 0.00100638
absolute result value4: -9.973e-06
==9826==
==9826== ERROR SUMMARY: 0 errors from 0 contexts (suppressed: 19 from 1)
==9826== malloc/free: in use at exit: 0 bytes in 0 blocks.
==9826== malloc/free: 0 allocs, 0 frees, 0 bytes allocated.
==9826== For counts of detected errors, rerun with: -v
==9826== All heap blocks were freed -- no leaks are possible.

Вернуться к Оглавлению

Copyright © 2010 rjaan as Andrey Rjavskov(Rzhavskov) <rjaan@yandex.ru> <arjavskov@gmail.com>