Spaces:
Sleeping
Sleeping
// © 2016 and later: Unicode, Inc. and others. | |
// License & terms of use: http://www.unicode.org/copyright.html | |
/* | |
********************************************************************** | |
* Copyright (c) 2004-2006, International Business Machines | |
* Corporation and others. All Rights Reserved. | |
********************************************************************** | |
* Author: Alan Liu | |
* Created: April 26, 2004 | |
* Since: ICU 3.0 | |
********************************************************************** | |
*/ | |
/** | |
* \file | |
* \brief C++ API: Currency Amount Object. | |
*/ | |
U_NAMESPACE_BEGIN | |
/** | |
* | |
* A currency together with a numeric amount, such as 200 USD. | |
* | |
* @author Alan Liu | |
* @stable ICU 3.0 | |
*/ | |
class U_I18N_API CurrencyAmount: public Measure { | |
public: | |
/** | |
* Construct an object with the given numeric amount and the given | |
* ISO currency code. | |
* @param amount a numeric object; amount.isNumeric() must be true | |
* @param isoCode the 3-letter ISO 4217 currency code; must not be | |
* nullptr and must have length 3 | |
* @param ec input-output error code. If the amount or the isoCode | |
* is invalid, then this will be set to a failing value. | |
* @stable ICU 3.0 | |
*/ | |
CurrencyAmount(const Formattable& amount, ConstChar16Ptr isoCode, | |
UErrorCode &ec); | |
/** | |
* Construct an object with the given numeric amount and the given | |
* ISO currency code. | |
* @param amount the amount of the given currency | |
* @param isoCode the 3-letter ISO 4217 currency code; must not be | |
* nullptr and must have length 3 | |
* @param ec input-output error code. If the isoCode is invalid, | |
* then this will be set to a failing value. | |
* @stable ICU 3.0 | |
*/ | |
CurrencyAmount(double amount, ConstChar16Ptr isoCode, | |
UErrorCode &ec); | |
/** | |
* Copy constructor | |
* @stable ICU 3.0 | |
*/ | |
CurrencyAmount(const CurrencyAmount& other); | |
/** | |
* Assignment operator | |
* @stable ICU 3.0 | |
*/ | |
CurrencyAmount& operator=(const CurrencyAmount& other); | |
/** | |
* Return a polymorphic clone of this object. The result will | |
* have the same class as returned by getDynamicClassID(). | |
* @stable ICU 3.0 | |
*/ | |
virtual CurrencyAmount* clone() const override; | |
/** | |
* Destructor | |
* @stable ICU 3.0 | |
*/ | |
virtual ~CurrencyAmount(); | |
/** | |
* Returns a unique class ID for this object POLYMORPHICALLY. | |
* This method implements a simple form of RTTI used by ICU. | |
* @return The class ID for this object. All objects of a given | |
* class have the same class ID. Objects of other classes have | |
* different class IDs. | |
* @stable ICU 3.0 | |
*/ | |
virtual UClassID getDynamicClassID() const override; | |
/** | |
* Returns the class ID for this class. This is used to compare to | |
* the return value of getDynamicClassID(). | |
* @return The class ID for all objects of this class. | |
* @stable ICU 3.0 | |
*/ | |
static UClassID U_EXPORT2 getStaticClassID(); | |
/** | |
* Return the currency unit object of this object. | |
* @stable ICU 3.0 | |
*/ | |
const CurrencyUnit& getCurrency() const; | |
/** | |
* Return the ISO currency code of this object. | |
* @stable ICU 3.0 | |
*/ | |
inline const char16_t* getISOCurrency() const; | |
}; | |
inline const char16_t* CurrencyAmount::getISOCurrency() const { | |
return getCurrency().getISOCurrency(); | |
} | |
U_NAMESPACE_END | |