鑑於類IPrinterManager
及其子類ColorPrinterManager
。 ColorPrinter
是AbstractPrinter
的子類。編輯中止消息ColorPrinterManager::print is not a covariant of IPrinterManager::print
。我該如何解決這個問題?覆蓋子類中的返回類型
class IPrinterManager
{
public:
virtual std::vector<std::shared_ptr<AbstractPrinter>>* print(std::string text) = 0;
};
class ColorPrinterManager : public IPrinterManager
{
public:
std::vector<std::shared_ptr<ColorPrinter>>* print(std::string text);
};
但我想強制只能返回彩色打印機。有沒有其他方法可以做到這一點? – user1056903
@ user1056903,你的實現是你如何執行的,客戶不應該在意。如果你想這樣做是因爲'AbstractPrinter'沒有提供足夠的界面來處理,你需要重新考慮你的設計。 – StoryTeller