関数と変数のスコープ
このカテゴリーの記事(新着順)
再帰的な動作を期待する場合には、再帰関数を定義する必要があります。 再帰とは、関数が関数自身を呼び出すことです。 ですので、再帰関数は、ループすることになりますので、以下の2つのルールが必要とされています。 1.必ず終点があること。 2.呼...
日時: 2008年06月04日 19:40
関数に渡す引数の型をまとめます。 大きく分類すると、関数の引数に渡せるのは、値、参照、ポインタ(後述)となります。 function(int var) 値呼び出し(値渡し)。 関数には値が渡される。 関数内で値を変更できるが、呼び出し元には...
日時: 2008年06月04日 19:26
関数をインライン関数として宣言すると、オーバーヘッドを排除できます。 inlineキーワードを使うと、C++コンパイラに、関数呼び出しを生成するよりも、関数本文をメインのコードストリームの中に入れるように知らせます。 こうして、オーバーヘッ...
日時: 2008年06月04日 18:49
引数のデフォルト値 C++では、デフォルト引数を指定できます。 void somefunc(const int width, const int height, float scale = 1.0) { ・・・ } somefunc(2...
日時: 2008年06月04日 18:06
C++の場合、関数のオーバーロードが使えます。 オーバーライドではなく、オーバーロードです。 関数のオーバーロードとは、複数の関数を同じ名前で定義できます。 関数のオーバーロードでは、関数の名前は同じとなりますが、引数の型、引数の数、引数の...
日時: 2008年06月04日 17:27
C++では、配列型のデータを関数の引数として渡せます。 関数プロトタイプ宣言では、配列のサイズを指定する必要はありません。 int someone(int array[]); 配列型の引数を渡す場合、C++では「アドレス呼び出し」となり、配...
日時: 2008年06月04日 08:12
参照戻し 参照型の宣言は、関数定義値の戻り値にも使用できます。 以下は、配列要素の値から、最大の値を取り出すプログラム。 #include <iostream> int& biggest(int array[], i...
日時: 2008年06月04日 07:01
参照型の変数は、関数の引数や関数の戻り値で宣言してやると、上手く活用できる場合があります。 #include <iostream> // カウントアップ。だが上手く動かない void increment(int count)...
日時: 2008年06月04日 06:34
まずは、以下のコードを実行してみます。 #include <iostream> int main() { int mult(int num_i, int num_k); std::cout << ...
日時: 2008年06月04日 06:11
引数のない関数 引数のない関数を宣言、または定義する場合・・・ int display(); int display() { ・・・ } と、()で表します。 引数がない場合は、明示的に引数がないことを示すためには、voidを使用する方...
日時: 2008年06月04日 05:43
関数を定義するには・・・ (引数1, 引数2・・・) { 処理・・・; } という形式で定義します。 これまでも、int main()という関数をたくさん使ってきましたが、main()関数は、プログラムの先頭で呼び出される特別な関数で...
日時: 2008年06月04日 05:06
ここで、モジュールが2つあると仮定します。 testモジュール(名前空間:test)、resultモジュール(名前空間:result)という2つのモジュールがあるとします。 testモジュールには、「test::argument」という変数...
日時: 2008年06月03日 23:56
namespace C++では、名前空間(namespace)を定義でき、これにより大きなプログラムなどで、変数名の重複を避けることができます。 #include <iostream> namespace family { ...
日時: 2008年06月03日 23:26
変数は、スコープのほかに、記憶クラスという属性も持っています。 変数の記憶クラスは、永続的なものと一時的なものの2つがあります。 グローバル変数は、常に永続的な記憶クラスとなり、プログラムが終了するまで存続します。 一時的な変数は、ブロック...
日時: 2008年06月03日 23:01
グローバル変数とローカル変数の違いの理解は、プログラミングを行ううえでは大事です。 変数は、それが有効となるスコープ(プログラムの範囲)を持ちます。 グローバル変数とは、それが宣言された箇所から、プログラムの終わりまで、ずっと有効となる変数...
日時: 2008年06月03日 22:07