1
Iはオーバーロード<<
オペレータが宣言したそれぞれが種々のコンピュータ構成要素を表すクラスの数を有しますそのコンポーネントは、他のコンポーネントで構成されています。ユニークなIDだけでなく、すべてのコンポーネントが公に派生する他の関数を生成するために、Component
という基本クラスを作成することにしました。もちろん、オーバーロードされた<<
演算子は、Component
オブジェクトへのポインタでは動作しません。オーバーロード出力オペレータは
<<
オペレータによって上書きされる純粋仮想関数のようなものをもたらすのだろうかと思いまして
:overloading << operators and inherited classes
+1私は実際にこれを数回見ましたが、意味があります。しかし、 'output'がpublicであるとすれば、' operator << 'は友人である必要はありません。また、以前は、 'virtual std :: ostream&print(std :: ostream&out)const; 'というシグネチャを手動で呼び出すとチェーンされるように見えました:' myobj.output(std :: cout)<
@DavidRodríguez-dribeasあなたが正しいです、友人宣言は必要ではありません、私は推測する習慣の力だけです。 :)あなたの提案に従ってコードを更新しました。 –