関数宣言の例

次のコード・フラグメントは、複数の関数宣言を示しています。 最初の部分は、2 つの整数の引き数を採用し、戻りの型が void である関数 f を宣言しています。

      void f(int, int);

次のコードは、固定文字へのポインターを使用して整数を戻す関数へのポインター p1 を宣言します。

      int (*p1) (const char*);

次のコードは、関数 f1 を宣言し、 関数 f1 は、1 つの整数の引き数を取り、整数の引き数を取って整数を戻す関数へのポインターを戻します。

      int (*f1(int)) (int);

関数 f1 の複雑な戻りの型に対して、 上記の関数の代わりに、typedef を使用することができます。

      typedef int f1_return_type(int);
      f1_return_type* f1(int);

C++このセクションでのここから先の説明は、C++ だけに適用されます。

次の宣言は、最初の引き数として定数整数を取る外部関数 f2() の宣言です。 この宣言は、可変数で可変型の他の引き数を持つことができ、型 int を戻します。

      int extern f2(const int ...);

ただし、C では、省略符号の前にコンマが必要です。

      int extern f2(const int, ...);

関数 f3 は、戻りの型 int を持っています。 そして、関数 f2 から戻された値であるデフォルト値を持つ、int 引き数を取ります。

      const int j = 5;
      int f3( int x = f2(j) );

関数 f6 は、クラス Xconst クラス・メンバー関数で、 引き数は取りません。int の戻りの型を持っています。

class X
{
public:
      int f6() const;
};

関数 f4 は、引き数を取らず、 戻りの型が void で、X 型および Y 型のクラス・オブジェクトをスロー (throw) することができます。

class X;
class Y;
 
// ...
 
void f4() throw(X,Y);

関数 f5 は、引き数を取らないで、戻りの型 void を持っています。 この関数は、任意の型の例外をスローする場合、unexpected() を呼び出します。

void f5() throw();

関連参照

IBM Copyright 2003