Considérons deux géométries Triangle
et Line
qui héritent de la structure de base Geometry
. Les structures dérivées héritent de la fonction virtuelle get_area()
de sorte que Triangle
calcule normalement la zone mais Line
devrait donner une erreur indiquant que get_area()
n'est pas pertinent pour Line
. Quand une erreur est affichée je voudrais savoir quelle structure a appelé get_area()
et où (numéro de ligne) et enfin terminer le programme. Cela n'a pas d'importance si l'erreur est affichée lors de la compilation ou de l'exécution. Comment puis-je faire cela?Donner une erreur dans la fonction virtuelle
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. */}
};
Peut-être que vous devez repenser votre conception? Ou votre implémentation à tout le moins? Si les lignes n'ont pas de zone alors la classe 'Line' ne devrait pas * avoir * une telle fonction? –
On dirait que vous avez besoin d'une classe 'line' qui est membre d'une classe' polygon' et que vous pouvez dériver de 'polygon' pour créer vos formes. – NathanOliver