1 /* 2 ********************************************************************** 3 * Copyright (c) 2004-2006, International Business Machines 4 * Corporation and others. All Rights Reserved. 5 ********************************************************************** 6 * Author: Alan Liu 7 * Created: April 26, 2004 8 * Since: ICU 3.0 9 ********************************************************************** 10 */ 11 #ifndef __MEASUREUNIT_H__ 12 #define __MEASUREUNIT_H__ 13 14 #include "unicode/utypes.h" 15 16 #if !UCONFIG_NO_FORMATTING 17 18 #include "unicode/fmtable.h" 19 20 /** 21 * \file 22 * \brief C++ API: A unit for measuring a quantity. 23 */ 24 25 U_NAMESPACE_BEGIN 26 27 /** 28 * A unit such as length, mass, volume, currency, etc. A unit is 29 * coupled with a numeric amount to produce a Measure. 30 * 31 * <p>This is an abstract class. 32 * 33 * @author Alan Liu 34 * @stable ICU 3.0 35 */ 36 class U_I18N_API MeasureUnit: public UObject { 37 public: 38 /** 39 * Return a polymorphic clone of this object. The result will 40 * have the same class as returned by getDynamicClassID(). 41 * @stable ICU 3.0 42 */ 43 virtual UObject* clone() const = 0; 44 45 /** 46 * Destructor 47 * @stable ICU 3.0 48 */ 49 virtual ~MeasureUnit(); 50 51 /** 52 * Equality operator. Return true if this object is equal 53 * to the given object. 54 * @stable ICU 3.0 55 */ 56 virtual UBool operator==(const UObject& other) const = 0; 57 58 protected: 59 /** 60 * Default constructor. 61 * @stable ICU 3.0 62 */ 63 MeasureUnit(); 64 }; 65 66 U_NAMESPACE_END 67 68 // NOTE: There is no measunit.cpp. For implementation, see measure.cpp. [alan] 69 70 #endif // !UCONFIG_NO_FORMATTING 71 #endif // __MEASUREUNIT_H__ 72