generische Operatoren in Templates



  • Hallo Leute, ich beschäftige mich erst seit kurzer Zeit mit C++ und hänge jetzt schon seit Tagen an folgendem Problem fest... 😕

    Ich habe ein Klassentemplate geschrieben:

    #include "systemc.h"
    
    typedef enum sd_digit {MINUS_ONE=-1, ZERO=0, ONE=1} ;
    
    template <class T, int Groesse>
    
      class SD_Number
      {
        public:
          T a[Groesse];   
    
          SD_Number& operator+(SD_Number B) ;
                  // weitere
    
        private:
          int seineGroesse ;
    
        template <class T, int Groesse>
        SD_Number<T, Groesse>& SD_Number<T, Groesse>::operator+(SD_Number B)
           {.....}
    
            // weitere
    

    Das ganze wird eine SD-Zahl-Klasse(sd:signed-digit), die statt mit zweiwertiger logik mit dreiwertiger rechnet(1,0,-1). Die bitweise Darstellung wird in dem Array a gespeichert. Es sollen nun alle möglichen Operatoren definiert werden.

    Mein Problem ist nun aber, dass ich bei meinen Operatoren(wie oben) immer nur SD-Zahlen gleicher BitLänge addieren,vergl.,... kann. Natürlich möchte ich aber auch "dreiBitige" mit "fünfBitigen" addieren,vergl. etc können!

    Leider habe ich keine Ahnung, wie ich das realisieren kann!

    Kann mir da jemand helfen ??

    Danke


Anmelden zum Antworten