私はGCCがC++コードの制御アクセス(public、private、protected)をどう扱うのだろうと思っていました。コンパイラ(GCC)はC++のアクセス制御をどのように扱いますか?
class X
{
public:
int a;
void funcA(){};
private:
int b;
void funcB(){};
protected:
int c;
void funcC(){};
};
もちろん、コンパイラはアクセス制御チェックを最初に行います。 しかし、私の質問は:
アセンブリコード(.sファイル)またはオブジェクトファイル(.oファイル)を生成したら、プライベート変数/関数/オブジェクトとアセンブリコードのパブリックなものの違いは何ですかとELFファイル?
コンパイル時にコンパイラがコードの制御アクセスをどのように設定しましたか?
ありがとうございます!
何もありません。アクセス修飾子は、フロントエンドでのみ処理されます。コードがアセンブリ言語またはオブジェクトコードに変換されると、これらのものはもう存在しません。 –
コンパイル結果にアクセス制御が表示されるのはなぜだと思いますか? –