Measure objects are formatted by MeasureFormat. * *
Measure objects are immutable. * * @author Alan Liu * @stable ICU 3.0 */ class U_I18N_API Measure: public UObject { public: /** * Construct an object with the given numeric amount and the given * unit. After this call, the caller must not delete the given * unit object. * @param number a numeric object; amount.isNumeric() must be TRUE * @param adoptedUnit the unit object, which must not be NULL * @param ec input-output error code. If the amount or the unit * is invalid, then this will be set to a failing value. * @stable ICU 3.0 */ Measure(const Formattable& number, MeasureUnit* adoptedUnit, UErrorCode& ec); /** * Copy constructor * @stable ICU 3.0 */ Measure(const Measure& other); /** * Assignment operator * @stable ICU 3.0 */ Measure& operator=(const Measure& other); /** * Return a polymorphic clone of this object. The result will * have the same class as returned by getDynamicClassID(). * @stable ICU 3.0 */ virtual Measure* clone() const; /** * Destructor * @stable ICU 3.0 */ virtual ~Measure(); /** * Equality operator. Return true if this object is equal * to the given object. * @stable ICU 3.0 */ UBool operator==(const UObject& other) const; /** * Return a reference to the numeric value of this object. The * numeric value may be of any numeric type supported by * Formattable. * @stable ICU 3.0 */ inline const Formattable& getNumber() const; /** * Return a reference to the unit of this object. * @stable ICU 3.0 */ inline const MeasureUnit& getUnit() const; /** * Return the class ID for this class. This is useful only for comparing to * a return value from getDynamicClassID(). For example: *
* . Base* polymorphic_pointer = createPolymorphicObject(); * . if (polymorphic_pointer->getDynamicClassID() == * . erived::getStaticClassID()) ... *