C++ では、関数は何らかの関数を実行するために導入されるコードのブロックであり、ポインターは関数内の変数を指すために使用されます。ポインタにはアドレスが割り当てられます。
C++ で関数からポインターを返す方法
C++ では、関数からポインターを返すことができます。これは、戻り値の型関数をその関数へのポインターとして宣言することで実現できます。作成されるすべての関数は、メモリ内の指定されたアドレスを取得します。アスタリスク * が関数名の左側に挿入されます。
構文
これは、C++ で関数からポインターを返すための構文です。
戻る タイプ ( * 関数ポインタ名 ) ( 引数の種類1、引数の種類2、……、引数の種類n ) = 関数名 ;
例1
この例は、C++ の関数からポインターを返す例を示しています。
#include
使用して 名前空間 標準 ;
空所 結果 ( 整数 & ある )
{
ある + = 10 ;
}
整数 主要 ( )
{
整数 バツ = 40 ;
//関数からポインタが返される
空所 ( * ポイント ) ( 整数 & ) = & 結果 ;
ポイント ( バツ ) ;
コート << バツ << 終わり ;
戻る 0 ;
}
このソース コードでは、 void result 関数が宣言されており、10 回インクリメントされる int a への参照を取得します。変数 x には値 40 が格納され、*ptr は関数 int& を指します。 ptr が結果を指しているため、x は 10 ずつ増加します。
入力 x の値は 10 ずつ増分され、50 が返されます。
例 2
これは、従業員の週給を計算する例です。
#include使用して 名前空間 標準 ;
ダブル & GetweeklyHours ( )
{
ダブル h = 32.65 ;
ダブル & 時間 = h ;
戻る 時間 ;
}
ダブル * 給料を得る ( )
{
ダブル 給料 = 42.48 ;
ダブル * 時給 = & 給料 ;
戻る 時給 ;
}
整数 主要 ( )
{
ダブル 時間 = GetweeklyHours ( ) ;
ダブル 給料 = * 給料を得る ( ) ;
コート << 「労働者の週の労働時間: 」 << 時間 << 終わり ;
コート << 「労働者の時給:」 << 給料 << 終わり ;
ダブル 週給 = 時間 * 給料 ;
コート << 「労働者の週給:」 << 週給 << 終わり ;
戻る 0 ;
}
このソースコードでは、勤務時間と時給を入力しています。関数のメソッドからのリターン ポインターは、これらのパラメーターにアクセスし、従業員の週給を計算するために使用されます。
週の勤務時間と時給がわかれば、両方の条件を掛け合わせて週の給与を計算できます。
結論
C++ では、関数からポインターを返すことができます。これは、戻り値の型関数をその関数へのポインターとして宣言することで実現できます。作成されるすべての関数は、メモリ内の指定されたアドレスを取得します。