Héritage multiple et polymorphisme
hello,
J'utilise openFrameworks mais j'ai une question orientée C++ plus que framework
J'ai une appli qui utilise une imprimante. Cette imprimante peut être de plusieurs type :
- standard via CUPS en appelant une commande système
- imprimante WiFi
- Imprimante thermique sur port série via USB en utilisant un addon (ofxThermalPrinter)
J'ai pas mal lu à propos de l'héritage et le polymorphisme mais des subtilités m'échappent. Je ne suis pas trop familier avec ces notions ne les utilisant pas très souvent. Mais dans mon cas, cela semble recommandé !
donc j'imagine utiliser des classes de la sorte :
- BasePrinter class
- PrinterCUPS class dérivée de BasePrinter
- PrinterWIFI class dérivée de BasePrinter
- PrinterThermal class dérivée de BasePrinter et ofxThermalPrinter
les contraintes :
- toutes les imprimantes ont une méthode print()
- seules les imprimantes WiFi et Série ont une méthode close()
Ce que je vois dans mon cas c'est que je n'aurais pas besoin de BasePrinter puisque toutes les imprimantes fonctionneront différemment. J'imagine donc que je dois utiliser une classe abstraite ?
j'ai donc dans mon cas (cas uniquement pour ThermalPrinter)
Code:
1 2 3 4 5 6 7 8
| class Printer
{
public:
Printer() {};
virtual ~Printer() {};
virtual void print() = 0;
} |
-
Code:
1 2 3 4 5 6 7 8 9 10 11
| #include <printer.h>
#include <ofxThermalPrinter.h>
class ThermalPrinter : public Printer, public ofxThermalPrinter {
public:
ThermalPrinter();
virtual ~ThermalPrinter();
virtual void print();
}; |
Ais-je besoin d'utiliser des pointeurs ?
Comment utiliser / instancier ces imprimantes ? dois-je passer par BasePrinter ou les classes dérivées ?
toute aide serait le bienvenu !
Merci beaucoup !