# std::moneypunct<CharT,International>::positive_sign, do_positive_sign, negative_sign, do_negative_sign

< cpp‎ | locale‎ | moneypunct

定义于头文件 `<locale>` |  |
public: string_type positive_sign() const; | (1) |
public: string_type negative_sign() const; | (2) |
protected: virtual string_type do_positive_sign() const; | (3) |
protected: virtual string_type do_negative_sign() const; | (4) |

1) 公开成员函数，调用最终导出类的成员函数 `do_positive_sign` 。
2) 公开成员函数，调用最终导出类的成员函数 `do_negative_sign` 。
3) 返回用作正货币值格式化的字符串。
3) 返回用作负货币值格式化的字符串。

只有返回字符串的首字符是出现于值 sign 所指示的 pos_format()/neg_format() 位置前的字符。剩下的字符出现在货币字符串的剩余部分之后'。

具体而言，对于 "-" 的 negative_sign ，格式化可作为 "-1.23 €" 出现，而对于 "()" 的 negative_sign ，它会作为 "(1.23 €)" 出现。

### 返回值

保有要用作正或负号的字符的 `string_type` 类型字符串。

### 示例

    #include <iostream>
    #include <iomanip>
    #include <locale>

    struct my_punct : std::moneypunct_byname<char, false> {
        my_punct(const char* name) : moneypunct_byname(name) {}
        string_type do_negative_sign() const { return "()"; }
    };

    int main()
    {
        std::locale loc("de_DE.utf8");
        std::cout.imbue(loc);
        std::cout << loc.name() << " negative sign is '"
                  << std::use_facet<std::moneypunct<char>>(loc).negative_sign()
                  << "' for example: " << std::showbase << std::put_money(-1234) << '\n';

        std::locale loc2("ms_MY.utf8");
        std::cout.imbue(loc2);
        std::cout << loc2.name() << " negative sign is '"
                  << std::use_facet<std::moneypunct<char>>(loc2).negative_sign()
                  << "' for example: " << std::put_money(-1234) << '\n';

        std::cout.imbue(std::locale(std::cout.getloc(), new my_punct("de_DE.utf8")));
        std::cout << "de_DE.utf8 with negative_sign set to \"()\": "
                  << std::put_money(-1234) << '\n';

    }

输出：

    de_DE.utf8 negative sign is '-' for example: -12,34 €
    ms_MY.utf8 negative sign is '()' for example: (RM12.34)
    de_DE.utf8 with negative_sign set to "()": (12,34 €)

### 参阅

do_pos_format do_neg_format [虚] | 提供通货值的格式化模式 (虚受保护成员函数)