是的,我知道把不同的抽象类的后代进行比较是不好的基调。但我真的必须。C++比较抽象类的后代
我有这个简单的抽象类:
class Figure {
public:
virtual double Square() = 0;
virtual ~Figure() {};
}
我想给它添加是一样的东西:
bool operator<(const Figure& other) {};
这将比较其后裔 - 几何图形,即Triangle, Rectangle, Octagon
- 使用他们的在方法Square()
中返回的区域。
这有可能以任何方式?
我试图找出什么在这里阻止你。 – drescherjm
你没有比较任何事物的后代。你正在比较数字。一个区域是一个数字。你可以在'Figure'中有一个虚拟的'area'方法(不知道为什么有人会把它叫做'Square'),就叫它。 –
@drescherjm我在这里可能出了点问题,但是当我写'return(* this-> Square()){0};'就像我在后代类中一样,我得到''一元'*'的无效类型参数('double')“'error – COLOuRSLIDES