Gobelijn API documentation  - generated for commit a0cbea7
 All Classes Namespaces Files Functions Variables Typedefs Friends Macros Pages
app_hierarchies.cpp
Go to the documentation of this file.
1 
7 #include "demos.h"
8 #include "objtracer/demobj.h"
9 #include "tracer/tracer.h"
10 
11 using namespace ODemo;
12 using namespace std;
13 
20 {
22 
23  COMP_MISC_LOG_TRACER(" statement: Bicycle m1(\"Honda\", \"red\");");
24  Bicycle m1("Honda", "red");
25 
26  COMP_MISC_LOG_TRACER(" statement: m1.displayInfo();");
27  m1.info();
28 
29  COMP_MISC_LOG_TRACER(" statement: Bicycle m2(m1);");
30  Bicycle m2(m1);
31 
32  COMP_MISC_LOG_TRACER(" statement: m2.addPassenger();");
33  m2.add_passenger();
34 
35  COMP_MISC_LOG_TRACER(" statement: m2.displayInfo();");
36  m2.info();
37 
38  COMP_MISC_LOG_TRACER(" statement: Bicycle* m3Ptr = new Bicycle(m2);");
39  auto m3Ptr = new Bicycle(m2);
40 
41  COMP_MISC_LOG_TRACER(" statement: m3Ptr->displayInfo()");
42  m3Ptr->info();
43 
44  COMP_MISC_LOG_TRACER(" statement: m2 = m1;");
45  m2 = m1;
46 
47  COMP_MISC_LOG_TRACER(" statement: delete m3Ptr;");
48  delete m3Ptr;
49 
50  COMP_MISC_LOG_TRACER(" statement: SailBoat s1(\"Marina\");");
51  SailBoat s1("Marina");
52 
53  COMP_MISC_LOG_TRACER(" statement: SailBoat s1(\"Freddy\");");
54  SailBoat s2("Freddy");
55 
56  vector<double> direction(2);
57  direction[0] = 1.0;
58  direction[1] = -1.0;
59  COMP_MISC_LOG_TRACER(" statement: s1.move(4, direction);");
60  s1.move(4, direction);
61 
62  COMP_MISC_LOG_TRACER(" statement: s1.startSinking();");
63  s1.start_sinking();
64 
65  COMP_MISC_LOG_TRACER(" statement: s1.displayInfo();");
66  s1.info();
67 
68  COMP_MISC_LOG_TRACER(" statement: Vehicle* v1Ptr = &s1;");
69  Vehicle* v1Ptr = &s1;
70 
71  COMP_MISC_LOG_TRACER(" statement: v1Ptr->displayInfo();");
72  v1Ptr->info();
73 
74  COMP_MISC_LOG_TRACER(" statement: s2 = s1;");
75  s2 = s1;
76 
77  COMP_MISC_LOG_TRACER(" statement: s2.displayInfo();");
78  s2.info();
79 
80  // The following won't compile because WaterVehicle has pure virtual
81  // functions.
82  // WaterVehicle wv1(s1);
83 
84  COMP_MISC_LOG_TRACER(" statement: return 0;");
85  return 0;
86 }
void info() const override
Return identification info.
Definition: SailBoat.cpp:54
Comprehensive include file for all tracer classes.
Header for object tracer demo routines.
#define COMP_MISC_FUNCTION_TRACER
Macro for tracking function scope.
This Vehicle interface class.
Definition: Vehicle.h:16
virtual void info() const =0
Return vehicle information.
void move(double speed, std::vector< double > direction) override
Sailboat motion.
Definition: SailBoat.cpp:66
void info() const override
Display info on model and color of the bike.
Definition: Bicycle.cpp:88
#define COMP_MISC_LOG_TRACER(MSG)
Macro for inserting log message into tracker output at current severity level.
Definition: TracerOutput.h:17
int app_hierarchies()
Demo prog for ctor/dtor features in class derivation.
Comprehensive include file for all of objtracer.
Represents a simple Bicycle.
Definition: Bicycle.h:16
bool add_passenger()
Take an additional passenger on board, if possible.
A simple SailBoat class.
Definition: SailBoat.h:15
void start_sinking()
Start sinking, even if you are already sinking.