私が理解していることから、C++ クラスの非静的データ メンバーは C スタイルの構造体にパックされます。この議論を単純化するために仮想関数と継承を無視すると、アクセス指定子はそのようなスキームでどのように適用されるのでしょうか?
クラスを言う:
class Object
{
public:
int i1;
int i2;
private:
char i3;
int i4;
};
に変換します。
struct {
int i1;
int i2;
char i3;
int i4;
}
c++ はどのようにプライベート メンバーi3
を保証しi4
、クラスの外部ではアクセスできませんが、アクセスi1
できるi2
ようにしますか?