Bonjour � tous,
Voil� je bloque sur un probl�me de conception et je me dis que peut-�tre les talents pr�sents sur le forum vont pouvoir m'aider
Je programme un �mulateur donc la rapidit� du code est quand m�me important m�me si je privil�gie la lisibilit� du code.
Je g�re 2 Interfaces :
On a ensuite les devices qui impl�mente telle ou telle interface.
Code : S�lectionner tout - Visualiser dans une fen�tre � part
1
2
3
4
5
6
7
8
9
10
11
12 Class IWordReadable { u32 readWord(u32 addr); u8 readUpperByte(u32 addr); // typedef ReadByteFunction : u8 (*f) (u32) u8 readLowerByte(u32 addr); // typedef ReadByteFunction : u8 (*f) (u32) } Class IByteReadable { u8 readByte(u32 addr); // typedef ReadByteFunction : u8 (*f) (u32) }
Je voudrais ensuite par rapport � une adresse donn�e aller taper directement la fonction ReadByteFunction correspondante.
Biens�r la seule solution que j'ai trouv� est de passer par les pointeurs de fonctions de la sorte :
J'aurai voulu �viter de passer par des pointeurs de fonctions et mettre dans le tableau directement des pointeurs sur objets mais le probl�me c'est que pour une device impl�mentant IWordReadable il y'a 2 fonctions readBytes possible ce qui m'oblige � pointer � un niveau plus fin soit au niveau de la fonction.
Code : S�lectionner tout - Visualiser dans une fen�tre � part
1
2
3
4
5
6
7
8
9 //device 1 implemente IWordReadable //device 2 implemente IByteReadable adressSpace[0x00000] = &device1->readUpperByte; adressSpace[0x00001] = &device1->readLowerByte; adressSpace[0x00002] = &device2->readByte; adressSpace[0x00003] = &device2->readByte;
Partager