struct P
{
int id;
virtual size_t GetSizeOf() const
{
return sizeof(*this);
}
virtual ~P() = default;
};
struct C1 : P
{
int x;
size_t GetSizeOf() const override
{
return sizeof(*this);
}
};
struct C2 : P
{
int y;
int z;
size_t GetSizeOf() const override
{
return sizeof(*this);
}
};
C1 c1;
C2 c2;
P* p[2] = { &c1, &c2 };
void setup()
{
Serial.begin(9600);
c1.id = 1;
c2.id = 2;
for (size_t i = 0; i < 2; i++)
{
Serial.println(p[i]->GetSizeOf());
}
}
void loop()
{
}