System.AnsiStringBase
C++
class RTL_DELPHIRETURN AnsiStringBase
プロパティ
種類 | 可視性 | ソース | ユニット | 親 |
---|---|---|---|---|
class | public | dstring.h | System | System |
説明
AnsiStringBase は、Delphi の長い文字列型に相当する C++ の型の基底クラスです。
AnsiStringBase は、テンプレート クラス AnsiStringT<CodePage> のすべてのインスタンスに共通するメソッドやメンバの定義場所となります。 AnsiString 自体は typedef で定義されているもので、AnsiStringT<0> と同等です。 AnsiStringBase を直接使用しないでください。
AnsiStringT は、コード ページが指定されている Delphi AnsiString を処理する際に使用されるテンプレート クラスです。
Delphi では複数の文字列型を使用します。 重要な長い文字列型の 1 つは一般に AnsiString と呼ばれています。 この型をサポートする場合は、以下の特長があります。
- 使用可能なメモリと同じ大きさの文字列が可能です。
- 共有参照を通じてメモリの効率的な使用が保証されます。
- ルーチンおよび演算子は現在のロケールに基づいて文字列を評価します。
AnsiStringBase という名前が付いていますが、これは ANSI 文字セットに限定されるわけではなく、マルチバイト文字セットや Unicode 文字セットなど、現在のロケール定義でサポートされている任意の文字セットを使用できます。
初期値が代入されていない AnsiStringBase 変数には、長さ 0 の文字列が格納されています。
C++ のストリーム演算子(<< および >>)を AnsiStringBase で使用するには、system.hpp より前に iostream をインクルードし、AnsiStringT::c_str() を使用して内部文字列表現を返す必要があります。 ストリーム演算子で AnsiString を使用する例を以下に示します。
# include <iostream>
# include <system.hpp>
int main() {
AnsiString HelloStr = "hello";
std::cout << HelloStr.c_str();
}
メモ: Delphi でも AnsiString をサポートしていますが、クラスではなくプリミティブ型として実装しています。 UnicodeString がデフォルトの文字列型になりました。 デフォルトでは、String 型として宣言された変数は UnicodeString になります。