Если у меня есть класс следующим образом
class Example_Class
{
private:
int x;
int y;
public:
Example_Class()
{
x = 8;
y = 9;
}
~Example_Class()
{ }
};
И структура выглядит следующим образом
struct
{
int x;
int y;
} example_struct;
Является ли структура в памяти example_struct
аналогичной структуре в Example_Class
например, если я сделаю следующее
struct example_struct foo_struct;
Example_Class foo_class = Example_Class();
memcpy(&foo_struct, &foo_class, sizeof(foo_struct));
будет foo_struct.x = 8
и foo_struct.y = 9
(то есть: те же значения, что и значения x, y в классе foo_class)?
Причина, по которой я спрашиваю, состоит в том, что у меня есть библиотека C ++ (я не хочу ее менять), которая совместно использует объект с кодом C, и я хочу использовать структуру для представления объекта, поступающего из библиотеки C ++. Меня интересуют только атрибуты объекта.
Я знаю, что идеальной ситуацией было бы иметь обтекание Example_class вокруг общей структуры кода C и C ++, но изменить используемую библиотеку C ++ будет непросто.