Klassen operator =



  • Hi,

    Ich will meine Klasse nach DWORD casten und diese Aktion definieren.
    Wie geht das ?

    -h-
    
    class CColor
    {
    public:
    	DWORD operator = ( const nXColor );
              ...
    
    }
    
    -cpp-
    
    DWORD CColor::operator = ( const CColor )
    {
      return 0xffffffff;
    }
    

    ICh will einer DWORD variable meine Klasse "zuweisen".

    DWORD dwColor;
    CColor color;
    
    dwColor = color;
    

    Funtzt aber nicht.

    Kann mir jemand helfen ?

    Cu



  • Gast_X schrieb:

    Ich will meine Klasse nach DWORD casten und diese Aktion definieren.

    Das funktioniert anders:

    class Foo {
    public:
      // Umwandlungsoperator Foo => DWORD
      operator DWORD() const {
        // ...
      }
    };
    
    Foo x;
    DWORD y = x;
    


  • Hi,

    Ok, Danke. Das funtzt ganz gut.

    ////////////////////////////////////////////////////////////////////
    // PUBLIC nXColor = const cl
    //
    // operator =
    ////////////////////////////////////////////////////////////////////
    nXColor::operator DWORD() const
    {
    	UCHAR _a, _r, _g, _b;
    	FLOAT fa, fr, fg, fb;
    
    	_a = abs(this->a);
    	_r = abs(this->r);
    	_g = abs(this->g);
    	_b = abs(this->b);
    
    	// transform uchar to 0.0f-1.0f
    	fa = (255/_a);
    	fr = (255/_r);
    	fg = (255/_g);
    	fb = (255/_b);
    
    	return(DWORD) fa*(0xff000000)+fr*(0x00ff0000)+fg*(0x0000ff00)+fb*(0x000000ff);
    }
    

    Diese Code wird zwar Compiliert, jedoch bekomm ich wären dem Ausführen des Codes einen Unbehanldeten Ausnamefehler..

    Wisst ihr vielleicht warum ?

    Bye



  • Hat sich erledigt!!!


Anmelden zum Antworten