Допустим, у меня есть два разных класса, каждый из которых представляет данные 2D-координат одним и тем же внутренним способом, как показано ниже:
class LibA_Vertex{
public:
// ... constructors and various methods, operator overloads
float x, y
};
class LibB_Vertex{
public:
// ... same usage and internal data as LibA, but with different methods
float x, y
};
void foobar(){
LibA_Vertex * verticesA = new LibA_Vertex[1000];
verticesA[50].y = 9;
LibB_Vertex * verticesB = reinterpret_cast<LibB_Vertex*>( vertexA );
print(verticesB[50].y); // should output a "9"
};
Учитывая, что два класса идентичны, а функция выше, могу ли я надежно рассчитывать наэто преобразование указателя работает как ожидалось в каждом случае?
(Справочная информация: мне нужен простой способ торговли массивами вершин между двумя отдельными библиотеками, которые имеют идентичные классы Vertex, и я хочу избежать ненужного копирования массивов).