鉴于类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