次のようなクラスがある場合
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_class の x、y 値foo_struct.x = 8
とfoo_struct.y = 9
同じ値) ?
私が尋ねる理由は、オブジェクトを C コードと共有している C++ ライブラリ (変更したくない) があり、構造体を使用して C++ ライブラリからのオブジェクトを表現したいからです。私はオブジェクトの属性にのみ興味があります。
理想的な状況は、C と C++ コードの間の共通構造を Example_class でラップすることですが、使用中の C++ ライブラリを変更するのは簡単ではありません。