For better understanding purpose I am trying to create class which have reference to another class-object, passing over constructor, and access its properties/methods. I've made simple example, it works as expected, but I am not sure this is proper (and best) way to do such things. Can you please review/criticize?
Code is below. Thank you in advance...
Sketch:
#include "MyClasses.h"
MyClass1 cl1(5); //create object of MyClass1
MyClass2 cl2(&cl1); //create object of MyClass2
void setup()
{
delay(100);
Serial.begin(115200);
Serial.println();
Serial.print("cl1 property: "); Serial.println( cl1.getProp() );
Serial.print("cl2 internal property: "); Serial.println( cl2.getInternalProp() );
}
void loop()
{
}
MyClasses.h:
#ifndef MyClasses_h
#define MyClasses_h
class MyClass1
{
public:
MyClass1(int a); //MyClass1 constructor
int getProp();
protected:
int _a;
};
class MyClass2
{
public:
MyClass2(MyClass1* c); //MyClass2 constructor
int getInternalProp();
protected:
MyClass1* _c;
};
#endif
MyClasses.cpp
#include "MyClasses.h"
MyClass1::MyClass1(int a)
{
//MyClass1 constructor
_a = a;
}
int MyClass1::getProp()
{
return _a;
}
MyClass2::MyClass2(MyClass1* c)
{
//MyClass2 constructor
_c = c;
}
int MyClass2::getInternalProp()
{
return _c->getProp();
}