考虑从基本结构Geometry
继承的两个几何图形Triangle
和Line
。派生结构继承虚函数get_area()
,以便Triangle
正常计算区域,但Line
应给出错误,指示get_area()
与Line
不相关。当显示错误时,我想知道哪个结构叫做get_area()
和哪里(行号)并最终终止程序。如果编译或运行时显示错误,则无关紧要。我怎样才能做到这些?在虚函数中给出错误
struct Geometry
{
virtual double get_area() = 0;
};
struct Triangle: Geometry
{
double get_area() override {/* some code. */}
};
struct Line: Geometry
{
double get_area() override {/* give error. */}
};
也许你需要重新考虑你的设计?或者至少你的实施?如果行没有区域,那么'Line'类不应该有*这样的函数? –
听起来就像你需要一个'多边形'类成员的'线'类,然后你可以从'多边形'派生出你的形状。 – NathanOliver