問題タブ [access-specifier]
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.
c++ - きめ細かいアクセス指定子 c++
私は次のクラスを持っています:-
ここで、f() を特定のクラス セット (クラス B、C、D など) からのみアクセス可能にし、g() を他の特定のクラス セット (クラス D、E、F など) からアクセスできるようにします。これを C++ で指定する方法はありますか? A のすべてのクラスを友達にすると、f と g の両方が B、C、D、E、F (A の他のプライベート メンバーと共に) からアクセスできるようになりますが、これは私が望むものではありません。
これは可能ですか、それともオブジェクト モデルを変更する必要がありますか?
java - Javaで保護されているようなC++
重複の可能性:
データメンバーをクラスとサブクラスのみにアクセス可能にする方法
Javaでは、
保護されたメンバーは、クラス内、そのサブクラス、および同じパッケージに存在するすべてのクラスから
アクセスできますが、メンバーがクラスとそのサブクラスからのみアクセスできるようにしたい(c ++の保護されたメンバーのように)。
例::
ここでは、BがAのサブクラスでなくても、Aのfun()にアクセスできます。
AのサブクラスではないすべてのクラスがAにアクセスできないようにするにはどうすればよいですか?
編集::私はJavaでこれを達成したいです。
java - インターフェイスで「継承されたメソッドの可視性を減らすことはできません」の意味
私は2つのファイルを持っています:
と
コードは問題ないように見えますが、次の行の 2 番目のファイルでエラーが発生していますvoid print(PrintDetails details) {
。
から継承されたメソッドの可視性を減らすことはできません
PrintService
。
誰かがこれが私にとって何を意味するのか説明できますか?
java - Javaクラスのメソッド内で宣言された変数にアクセス指定子を使用できないのはなぜですか?
Javaクラスのメソッド内で宣言された変数にアクセス指定子を使用できないのはなぜですか?
java - 保護されたアクセス タイプ
あるパッケージのサブクラスが、スーパークラスの参照によって (別のパッケージの) スーパークラスの保護されたメンバーにアクセスできないのはなぜですか? この点で苦労しています。私を助けてください
c++ - 明示的なインスタンス化でプライベートに不適切にアクセスすることが合法であるのはなぜですか?
いったいなぜこれが許されるのでしょうか。
上記のC++の乱用については、JohannesSchaubにクレジットが与えられます。(デモ)
あなたがあなたに見えないはずのものにアクセスできる他のケースはありますか?これは標準の単なる「バグ」ですか?
c++ - == オーバーロードが引数のプライベート メンバーにアクセスできる理由
次の (部分的な) コードを検討してください。
コードがコンパイルされ、結果は適切に見えます。しかし、if
演算子のオーバーロード実装の部分で、その引数のプライベートメンバー - に直接アクセスしていますが、そのconst Group& g
ようなアクセスは無効ではないでしょうか?
c# - インターフェイス メンバーを非公開にできないのはなぜですか?
重複の可能性:
C# インターフェイスの非パブリック メンバー
私が持っているとしましょう
私はこれを得る:
インターフェイス メンバーを実装しません。パブリックではないため、インターフェイス メンバーを実装できません。
修正方法はわかっていますが、なぜ C# でインターフェイス メンバーをプライベートにできないのか疑問に思っています。
ライブラリを書いているときなど、何度もクラスをパターンに合わせたいと思っていましたが、メンバーを公開する必要はありませんでした。そして何よりも、インターフェイス自体は公開されていません:X
注: プライベート インターフェイス メンバーを実装する方法を尋ねているわけではありませんが、この決定の背後にある設計ロジックは知っています。適切な複製が見つかりませんでした。
更新:元のスレッドよりも、別のスレッドの回答からのこのコードサンプルは、ほとんどの説明の回答よりもよく説明しています。またはさらに良いことに、@JonSkeetからこれ
c# - 一貫性のないアクセシビリティ: 基本クラスはクラスよりアクセスしにくい
したがって、DLL に抽象基本クラスとそのクラスの子クラスがあります。子を公開したいのですが、ベースを非公開にして、dll の外部からアクセスできないようにします。
それ、どうやったら出来るの?