私は(完全な参照ハーバートSchildt)によると、派生クラスは友人機能を継承せず、友人機能は 記憶クラス指定子を持たないかもしれません。つまり、静的または外部として宣言することはできません。どうして?友人機能に関する制限
答えて
派生クラスは、フレンド機能を継承しないのですか? […] なぜ?
それはカプセル化を破るので:派生クラスは、もはやそれが効果的にその内部へのアクセス権を持つユーザーを制御することはできませんその友人を制御することができませんでした。
静的または外部として宣言されていない可能性があります。なぜですか?
クラスが効果的にもはやその機能を制御することはできませんのでstatic
は、(それが唯一のクラスに属する機能で理にかなっている、とfriend
sが自由な機能です)意味をなさないだろう、とextern
は再びカプセル化に違反しているためextern
であるため、友達は事実上、クラスには分からない別のコンパイル単位から来る可能性があります。
は、補正のための月の回答を参照してください。そうすることでポイントがあるので
申し訳ありませんが、この回答の2番目の部分は完全に間違っています。 'static'は自由な関数に意味があり(コンパイル単位に対してローカルになります)、キーワード' static'を含まないすべての自由関数宣言は暗黙的に 'extern'を含みます。また、クラスはコンパイル単位に関連付けられていません。友人は効果的に*どんな*編集単位からでも来ることができます、それは "異なっている"かどうかは定義できません。 –
@Janあなたは正しいです。 –
- 継承クラスは、揚げの機能を継承しません:
- フレンド関数自体がその友人それはクラスについて知っているが、それは魔法の新しいサブクラスを学びませんそれで、それはどちらかの友人である必要はありません。
- 親への暗黙的な変換のために派生クラスに機能を使用することも可能です。それは、関数のシグネチャの一部ではないので、関数を指定する必要はないので
- friend宣言は、
static
もextern
を含めることはできません。私は、関数自体の宣言は(クラスの外では)どちらか含めることができると信じています。
- 1. メンバーの機能を友人にする
- 2. 制限機能に関する機能の一致
- 3. MongoDBの友人関係の友人をモデリングする
- 4. 新しい機能を友人機能としてオーバーロードしていますか?
- 5. 友人、友人、友人の友達などのSQLテーブル
- 6. Arduinoの機能ポートを制限する
- 7. C++親の友人機能を呼び出す方法は?
- 8. 友人機能のアクセス指定子は重要ですか?
- 9. テンプレートの友人機能と返品タイプの控除
- 10. 友人機能は同じファイル内にある必要がありますか?
- 11. 友人の友人の数を取得
- 12. ブラウザ拡張機能/アドオンサイズ制限
- 13. 時間制限付きios機能
- 14. グラフ横断:Gremlinを使用して「友人や友人の友人」を質問するには
- 15. Facebook - 友人の友人の数をカウントする
- 16. 流暢NHibernateと友人の関係
- 17. ユーザーにラムダ機能の表示を制限する
- 18. ユーザーグループに基づいてWCF Webサービス機能を制限する
- 19. PHPMyAdminの機能の一部を制限するには
- 20. Template Specialization Classに対してテンプレート機能を友人にすることは可能ですか?
- 21. クラステンプレートの友人に関するいくつかの問題
- 22. Facebookのルビーで友人の写真の友人にアクセスする方法
- 23. facebook apiによる2つのFacebook ID間の関係(友人、友人)を取得
- 24. phpで友人refererredと報酬制度を行うには?
- 25. テンプレートパラメータを友人にするには?
- 26. DLL機能を制限することはできますか?
- 27. 特定のコンピュータに機能を制限します。
- 28. 友人とユーザーのテーブルをリンクする(友人のユーザー名を取得する)
- 29. BuildShip(gradle eclipse)統合機能を制限する方法は?
- 30. vimの%機能を制限する方法は?
は離れて本を投げ、新しいものを購入しています。ハーブSchildtのの本は、その技術的な誤りのために[普遍けなさ](http://www.cs.technion.ac.il/users/yechiel/CS/BadBooksC+C++.html#SchildtAny)です。 –