は、私がBase
クラスがあるとします。友人関係はC++で継承されていますか?
class Base {
friend SomeOtherClass;
};
そしてBase
から継承する別の(異なる)クラスがあります:
class AnotherClass : public Base {}
は友情が同様に継承されますか?原則として
は、私がBase
クラスがあるとします。友人関係はC++で継承されていますか?
class Base {
friend SomeOtherClass;
};
そしてBase
から継承する別の(異なる)クラスがあります:
class AnotherClass : public Base {}
は友情が同様に継承されますか?原則として
、派生クラスは除いて、基本クラスのすべてのメンバーを継承:いいえ、そう
* its constructor and its destructor
* its operator=() members
* its friends
。友人は継承されません。ここに記載されているよう
あなたは、このウェブサイトのように正確な言葉遣いを選んだのは興味深いです:http://www.cplusplus.com/doc/tutorial/inheritance/ – dicroce
おそらく今質問するべき良い質問は、友情が継承されるようにすることができます?私が "友情"を持ちたいすべてのクラスのリストを書くのではなく、私がやっていることに確かに役立つだろう。 – user3728501
ありませんそれは、ありません:http://www.parashift.com/c++-faq-lite/friends.html#faq-14.4
リンクの例は、OPの質問とは反対のケースを示しています。 'SomeOtherClass'が' AnotherClass'のオブジェクトに継承された 'Base'フィールドとメソッドにアクセスできるようにしたいと付け加えたいと思います。 –
んが、それはないではありません。
編集:は、セクション11.4/8
友情を継承でもないも 推移、C++標準から引用します。
コンパイラを使用して簡単に回答できるはずのもう1つの質問です。 – shoosh
@shoosh:コンパイラは必ずしも標準に準拠しているとは限りません。そのような質問は、コンパイラではなく標準によって回答されるべきです。 –
@shooshどのコンパイラ? VS for Windowsまたはg ++ for unix?どのバージョンのC++標準ですか?コンパイラが動作する場合でも動作しなくても、多くの質問をすることができます。 – user3728501