FreeBASIC マニュアルのトップに戻る

FreeBASIC Cast

目次→言語リファレンス→変数とデータ型→データ型を変換CAST←オリジナル・サイト

CAST 左にメニュー・フレームが表示されていない場合は、ここをクリックして下さい

←リンク元に戻る プログラム開発関連に戻る

表現を、指定されたデータ型に変換します。

構文:
Cast( datatype, expression )

パラメータ:
datatype
組み込みデータ型(標準型)
expression
別のビルトインデータ型の変数

記述:
expression を別の datatype に変換します。
datatype が不明で、Type Alias に変換するときに、マクロで使うと便利です。

これは、CintCdbl などの変換演算子の、一般的な形式です。
Cast は、より汎用性があります。組み込み Cast operator を持つが、組み込みキーワードを持たない、組み込み型で使えるからです。例: Cast( Byte, boolean )
また、変数の型が、コード内で固定されていない場合に使うのに適しています。たとえば、前に Define されていたり、異なる変数や式の Type of の場合です。

注意: 異なる型の Pointer への変換専用に演算子を使う場合は、代わりに Cptr を使うことを考えてください。

アップキャスト (下位(派生)クラスのオブジェクトを指す参照・ポインターなどを変換して、上位(基底)クラスのオブジェクトに対応する型にする): 継承構造では、アップキャスティングは、派生型の参照またはポインタを、基本型に変換します。
この特殊用途では、派生型インスタンス (expression) に適用された Cast は、基本型 (datatype) 参照を戻すために、使うことができます。

Operator Cast メンバを使って、Cast をユーザ定義型表現のために、多重定義できます。

例:
'' 整数直定数が、符号付き Byte に変換されるので、-128 が表示されるでしょう
'' (この Casting 操作は、CByte を使うのと同等です)
Print Cast( Byte, &h0080 )

'' 浮動小数点の値が Integer に変換されるので、3 が表示されるでしょう
'' (この Casting 操作は CInt を使うのと同等です)
Print Cast( Integer, 3.1 )

Sleep


'' macro sizeofDerefPtr(): 逆参照されたポインタのサイズを返す
#define sizeofDerefPtr(ptrToDeref) SizeOf(*Cast(TypeOf(ptrToDeref), 0))

'' macro typeofDerefPtr(): 逆参照されたポインタの型を返す
#define typeofDerefPtr(ptrToDeref) TypeOf(*Cast(TypeOf(ptrToDeref), 0))


' New で Double に動的メモリを割り当て
Dim As Double Ptr pd
pd = New typeofDerefPtr(pd)
*pd = 3.14159
Print *pd

' Callocate で Zstring*10 のために動的にメモリを割り当てる
Dim As ZString Ptr pz
pz = CAllocate(10, sizeofDerefPtr(pz))
*pz = "FreeBASIC"
Print *pz

Sleep
Delete pd
Deallocate(pz)


方言差:
QBからの違い:
参照:

データ型を変換 に戻る

←リンク元に戻る プログラム開発関連に戻る

ページ歴史:2019-07-04 00:10:09
日本語翻訳:WATANABE Makoto、原文著作者:AntoniGual

ホームページのトップに戻る

表示-非営利-継承