fork(2) download
  1. #include <cstdio>
  2. // ---------------------------------------------------------> базовый класс <---
  3. class ModelDevice
  4. {
  5. public:
  6. /// Конструктор
  7. ModelDevice ()
  8. {
  9. // неважно
  10. }
  11. /// Деструктор
  12. virtual ~ModelDevice ()
  13. {
  14. // неважно
  15. }
  16. };
  17. // -------------------------------------------------------------> интерфейс <---
  18. class Angle
  19. {
  20. public:
  21. /// Получить угловое положение
  22. virtual int getAngle (float &angle) = 0;
  23. /// Получить угловую скорость
  24. virtual int getVelocity (float &velocity) = 0;
  25. };
  26. // ----------------------------------------------------> собсно, реализация <---
  27. class ModelAngle: public ModelDevice, public Angle
  28. {
  29. public:
  30. /// Код оси
  31. enum AXIS
  32. {
  33. AZ, ///< азимут
  34. EL ///< угол места
  35. };
  36. /// Конструктор
  37. ModelAngle (int a) :
  38. axis (a)
  39. {
  40. fprintf(stderr, "ModelAngle = %X\n", this);
  41. }
  42. /// Деструктор
  43. ~ModelAngle ()
  44. {
  45. // ну тут типа реализация
  46. }
  47. /// Получить угловое положение
  48. int getAngle (float &angle) override
  49. {
  50. // ну тут типа реализация
  51. }
  52. /// Получить угловую скорость
  53. int getVelocity (float &velocity) override
  54. {
  55. // ну тут типа реализация
  56. }
  57. protected:
  58. int axis;
  59. };
  60. // -----------------------------------------------------> ну и что ж я вижу <---
  61. int main(int argc, char *argv[])
  62. {
  63. Angle *angle = new ModelAngle(ModelAngle::AZ);
  64. fprintf(stderr, "angle = %X\n", angle);
  65.  
  66. delete(angle);
  67. }
Runtime error #stdin #stdout #stderr 0s 81600KB
stdin
Standard input is empty
stdout
Standard output is empty
stderr
ModelAngle = 8628AC20
angle = 8628AC28
*** Error in `./prog': free(): invalid pointer: 0x00002ae68628ac28 ***
======= Backtrace: =========
/lib/x86_64-linux-gnu/libc.so.6(+0x70bcb)[0x2ae6871b9bcb]
/lib/x86_64-linux-gnu/libc.so.6(+0x76f96)[0x2ae6871bff96]
/lib/x86_64-linux-gnu/libc.so.6(+0x7778e)[0x2ae6871c078e]
./prog(+0xa20)[0x2ae686266a20]
/lib/x86_64-linux-gnu/libc.so.6(__libc_start_main+0xf1)[0x2ae6871692b1]
./prog(+0xa7a)[0x2ae686266a7a]
======= Memory map: ========
2ae686266000-2ae686267000 r-xp 00000000 fd:00 21030916                   /home/IYOxKl/prog
2ae686267000-2ae68626b000 rw-p 00000000 00:00 0 
2ae686274000-2ae686379000 rw-p 00000000 00:00 0 
2ae686467000-2ae686468000 r--p 00001000 fd:00 21030916                   /home/IYOxKl/prog
2ae686468000-2ae686469000 rw-p 00002000 fd:00 21030916                   /home/IYOxKl/prog
2ae686469000-2ae68648c000 r-xp 00000000 fd:00 6073359                    /lib/x86_64-linux-gnu/ld-2.24.so
2ae68668c000-2ae68668d000 r--p 00023000 fd:00 6073359                    /lib/x86_64-linux-gnu/ld-2.24.so
2ae68668d000-2ae68668e000 rw-p 00024000 fd:00 6073359                    /lib/x86_64-linux-gnu/ld-2.24.so
2ae68668e000-2ae68668f000 rw-p 00000000 00:00 0 
2ae68668f000-2ae686801000 r-xp 00000000 fd:00 7235085                    /usr/lib/x86_64-linux-gnu/libstdc++.so.6.0.22
2ae686801000-2ae686a01000 ---p 00172000 fd:00 7235085                    /usr/lib/x86_64-linux-gnu/libstdc++.so.6.0.22
2ae686a01000-2ae686a0b000 r--p 00172000 fd:00 7235085                    /usr/lib/x86_64-linux-gnu/libstdc++.so.6.0.22
2ae686a0b000-2ae686a0d000 rw-p 0017c000 fd:00 7235085                    /usr/lib/x86_64-linux-gnu/libstdc++.so.6.0.22
2ae686a0d000-2ae686a11000 rw-p 00000000 00:00 0 
2ae686a11000-2ae686b14000 r-xp 00000000 fd:00 6073388                    /lib/x86_64-linux-gnu/libm-2.24.so
2ae686b14000-2ae686d13000 ---p 00103000 fd:00 6073388                    /lib/x86_64-linux-gnu/libm-2.24.so
2ae686d13000-2ae686d14000 r--p 00102000 fd:00 6073388                    /lib/x86_64-linux-gnu/libm-2.24.so
2ae686d14000-2ae686d15000 rw-p 00103000 fd:00 6073388                    /lib/x86_64-linux-gnu/libm-2.24.so
2ae686d15000-2ae686d2b000 r-xp 00000000 fd:00 6073326                    /lib/x86_64-linux-gnu/libgcc_s.so.1
2ae686d2b000-2ae686f2a000 ---p 00016000 fd:00 6073326                    /lib/x86_64-linux-gnu/libgcc_s.so.1
2ae686f2a000-2ae686f2b000 r--p 00015000 fd:00 6073326                    /lib/x86_64-linux-gnu/libgcc_s.so.1
2ae686f2b000-2ae686f2c000 rw-p 00016000 fd:00 6073326                    /lib/x86_64-linux-gnu/libgcc_s.so.1
2ae686f2c000-2ae686f44000 r-xp 00000000 fd:00 6073345                    /lib/x86_64-linux-gnu/libpthread-2.24.so
2ae686f44000-2ae687143000 ---p 00018000 fd:00 6073345                    /lib/x86_64-linux-gnu/libpthread-2.24.so
2ae687143000-2ae687144000 r--p 00017000 fd:00 6073345                    /lib/x86_64-linux-gnu/libpthread-2.24.so
2ae687144000-2ae687145000 rw-p 00018000 fd:00 6073345                    /lib/x86_64-linux-gnu/libpthread-2.24.so
2ae687145000-2ae687149000 rw-p 00000000 00:00 0 
2ae687149000-2ae6872de000 r-xp 00000000 fd:00 6073482                    /lib/x86_64-linux-gnu/libc-2.24.so
2ae6872de000-2ae6874dd000 ---p 00195000 fd:00 6073482                    /lib/x86_64-linux-gnu/libc-2.24.so
2ae6874dd000-2ae6874e1000 r--p 00194000 fd:00 6073482                    /lib/x86_64-linux-gnu/libc-2.24.so
2ae6874e1000-2ae6874e3000 rw-p 00198000 fd:00 6073482                    /lib/x86_64-linux-gnu/libc-2.24.so
2ae6874e3000-2ae6874e7000 rw-p 00000000 00:00 0 
2ae688000000-2ae688021000 rw-p 00000000 00:00 0 
2ae688021000-2ae68c000000 ---p 00000000 00:00 0 
7fff5cd96000-7fff5cdb7000 rw-p 00000000 00:00 0                          [stack]
7fff5cddd000-7fff5cddf000 r-xp 00000000 00:00 0                          [vdso]
7fff5cddf000-7fff5cde1000 r--p 00000000 00:00 0                          [vvar]
ffffffffff600000-ffffffffff601000 r-xp 00000000 00:00 0                  [vsyscall]