問題タブ [public-members]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
2 に答える
1901 参照

c++ - C++ パブリック変数スコープの混乱

クラスでパブリック変数を宣言すると、そのクラスのメンバーでもある任意の関数からその変数を変更できます。

関数内で変数を宣言する場合、そのスコープは関数の境界を超えません。

では、パブリック クラス変数は本質的に、クラスの任意のメンバーがアクセスおよび変更できるグローバル変数ですか?

その場合、グローバル変数とパブリック変数の違いは何ですか?

0 投票する
3 に答える
86 参照

c++ - C++ | 派生クラスは、それ自体のプライベート メンバーではなく、基本クラスのプライベート メンバーにアクセスしています

これが明らかな場合は申し訳ありませんが、私は周りを検索しましたが、この問題の解決方法についてはまだ不明です. これが私のコードです:

このコードの出力は次のとおりです。

ご覧のとおり、"owner"、"classifier"、"coil_num" を、ユーザーが変更できないプライベート メンバーにする必要があります。これらは、問題のクラスによっても異なります。

問題:

問題は、出力の最後の 2 行です。派生クラス (ElecMagnet) がこれらのメンバーを返すパブリック関数を継承すると、基本クラスのメンバーが返されます。自分のものではありません。これは、PermMagnet クラスの「classifier」と「coil_num」を返すため、わかります。

派生クラスがこのように動作する理由を誰かが知っていますか? ベースではなく、独自のプライベートメンバーにアクセスするべきではありませんか?