Что касается того, работает это или нет, я не знаю, это будет зависеть от реализации.
Однако по стандартам нет гарантии, что это будет работать (поэтому не делайте этого), MyClassA и MyClassB - это два отдельных типа, которые несовместимы, даже если они структурно одинаковы.
То же самое относится к int *.
если вам нужно преобразование между ними, вы можете сделать оператор присваивания от A до B
class MyClassA{
...
operator=(const MyClassB& mcb)
{
this.x=mcb.x;
this.y=mcb.y;
}
};
И если вам нужен доступ к целочисленному элементу внутри MyClassA.
//in MyClassA
int& getX(){ return x; }
const int& getX() const { return x; }
int& x=mca.getX();