考慮從基本結構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