第8章 void

 C/C++の関数は必ずしも引数を持ったり戻り値を持ったりしていなくても構いません。今回は引数も戻り値もない関数について説明します。


 今回の要点は次の通りです。


 では、いってみましょう。


 前回のプログラムをもう一度見てみましょう。

プログラム
// Func1.cpp
#include <iostream.h>

int f(int x, int y)
{
    return 2 * x + y;
}

int main()
{
    cout << "f(1 ,2) = " << f(1, 2) << endl;
    cout << "f(182, 144) = " << f(182, 144) << endl;

    return 0;
}

 よく見て下さい。関数を呼び出した後にその答えを表示しました。ですが、表示を関数の中でやったので別にいいことがわかります。

 しかし、そうなると戻り値を返す必要がなくなってしまいます。どうしたらよいのでしょうか。

 答は簡単です。戻り値を返さなければいいのです。そして、その時は戻り値の型を void にします。void というのは、虚空、真空といった意味の言葉です。つまり、何もないことを示します。

 では、プログラムを見てみましょう。

プログラム実行結果
// Func1b.cpp
#include <iostream.h>

void f(int x, int y)
{
    cout << "f(" << x << ", " << y
         << ") = " << 2 * x + y << endl;
}

int main()
{
    f(1, 2);
    f(182, 144);
    return 0;
}
f(1, 2) = 4
f(182, 144) = 508

 値を返す必要がないので、return 文はいりません。書いてもいいのですが、その時は return; のみにして、値を入れる必要はありません。

 そして、呼び出すときもただ関数を書くだけで構いません。= がないと落ち着かないという人も、これに慣れてもらうしかありません。


 戻り値をなくせるのなら、引数も無くすことができます。では、次のプログラムを見て下さい。

プログラム実行結果
// Func2.cpp
#include <iostream.h>

void Hello()
{
    cout << "やぁ、こんちは。" << endl;
}

int main()
{
    Hello();
    Hello();
    return 0;
}
やぁ、こんちは。
やぁ、こんちは。

 何て意味のないプログラムなんでしょうか(笑)。今までの知識ではこの程度しかできませんが、引数なしの関数は結構よく使います。代表的なのは main です。

 では、説明しましょう。

void Hello(){ ... }

 引数の部分を見てみま...って、何にもないですね。これでいいのです。カッコの中を空にすれば引数なしの関数の出来上がりです。この際、カッコを省略することはできません。カッコは関数の目印なので省略してはいけません。

 また、カッコの中に void と書いても構いません。

 そして、関数を使う際もカッコは必ず必要です。ですが、カッコの中には何も書きません。


 今回の要点は次の通りでした。


 では、また次回まで。


第7章 関数 | 第9章 グローバル変数

Last update was done on 2002.2.11

この講座の著作権はロベールが保有しています