克服虛擬運營商
試圖實現虛擬
<code class="cpp">virtual friend ostream & operator<<(ostream& os,const Advertising& add);</code>
問題的根源
定義的運算子
直接定義的問題
定義運算子
<code class="cpp">MyClass myObject; myObject << cout; // Legal but not our intended usage</code>
解決方案:間接方法
要解決這些挑戰,請引入一個額外的虛擬方法function:
<code class="cpp">class MyClass { public: virtual void print(ostream& where) const; };</code>
然後,重新定義運算子
<code class="cpp">ostream& operator<< (ostream& out, const MyClass& mc) { mc.print(out); return out; }</code>
此設定允許操作員
以上是如何實作虛擬`operator的詳細內容。更多資訊請關注PHP中文網其他相關文章!