ideas for a generalized unit-handling class

it would be wonderful if i could implement a generalized unit class, but as simple of a concept as it is, a good way to implement it eludes me...

here's what i have so far, obviously it's clumsy and woefully inadequate, but at least it's a starting point for some discussion.

Code:

`class unit`

{

public:

unit(size_t NumUnits) : numUnits(NumUnits){}

double exponent;

double coeff;

const size_t numUnits;

unit *units;

double convert(unit u)

{

//returns a conversion factor if this and u are of compatible dimensions

};

unit multiply(unit u)

{

//adds exponents of this->units of this and u->units

}

unit divide(unit u)

{

//subtracts exponents of this->units of and u->units

}

};

there has got to be a more elegant and robust way of doing this. any suggestions (including 3rd party wares) would be greatly appreciated.