1
所以我有一個Base
類:我該如何在基本抽象類中調用重載操作符?
class Base
{
public:
std::ostream& operator << (std::ostream & out, const Base & base);
}
而且我已經定義了運營商應該做的:
ostream& operator << (std::ostream & out, const Base & base)
{
return out << "output";
}
如果我有一個Derived
類,它擴展Base
,我想Derived
做同樣的當它的插入操作符被調用時,它的作用是Base
,那麼執行此操作的最佳方法是什麼?我最好的意思是不重用代碼的最佳方式。
您是否嘗試過'虛擬'方法,其中重寫只有在派生的行爲與基本行爲不同時纔會執行? – moshbear 2012-03-11 04:36:55
您的運營商聲明無效。 – Xeo 2012-03-11 04:36:58
不管怎麼樣,考慮到你通過引用傳遞'Base'(所以它可能是一個'Derived'並且仍然與虛擬東西一起工作)......一旦你把它從課堂中拿出來了,反正這不會發生嗎? (類中的'<<'操作符會讓你說'aBase << stuff;',但與ostreams無關。) – cHao 2012-03-11 04:36:58