Say I have two classes A and B, and a vector of class A as below:
class A {
int foo;
int bar;
void someMet
The program behaviour is undefined since the types are unrelated.
One solution is to write a cast operator to copy a class B instance to a class A instance. In class B, write
operator A() const
{
A a;
a.foo = this->foo; // ToDo - check `this->foo` is an appropriate size
a.bar = this->bar; // ToDo - check `this->bar` is an appropriate size
return a; // compiler will elide the value copy
}