## 5.3 電話番号の書式設定ファセットクラス

C++ のロケールとファセットが用意できたので、電話番号のロケール依存の構文解析と書式設定を新しいファセットクラスにカプセル化します。この例では書式設定に着目します。time_put や money_put と同様に、新しいファセットクラスを phone_put と呼びます。

phone_put ファセットクラスは、実際にロケール依存の書式を実装するファセットクラスの基底クラスとして機能するだけです。クラス phone_put の、他のファセットクラスとの関係を図 13 に示します。

#### 図 13 -- phone_put ファセットと実装ファセットとの関係

新しいファセットクラス phone_put の最初の仮宣言を示します。

    class phone_put: public locale::facet                        //1
    {
    public:
       static locale::id id;                                     //2
       phone_put(size_t refs = 0) : locale::facet(refs) { }      //3

       string_t put(const string_t& ext
                   ,const string_t& area
                   ,const string_t& cnt) const;                  //4
    };

//1 | ロケールオブジェクトで新しい電話ファセットクラスのインスタンスを管理するため、基底クラス locale::facet から派生させます。
//2 | 新しい基底ファセットクラスでは、型が locale::id である静的データメンバー id を定義する必要があります。
//3 | 基底クラスに渡す参照カウントを取り出すコンストラクタを定義します。
//4 | 実際の書式設定を行う関数 put() を定義します。

Copyright (c) 1998, Rogue Wave Software, Inc.
このマニュアルに関する誤りのご指摘やご質問は、電子メールにてお送りください。

OEM リリース, 1998 年 6 月