克服虚拟运营商
试图实现虚拟
<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中文网其他相关文章!