• ベストアンサー

結果を報告しない?(void)

#include<iostream> #include<string> using namespace std; void Aisatu(string n){ cout<<n<<"さん、こんばんわ"<<endl; } int main() { Aisatu("鈴木"); } 上のプログラムで、C++の学習書に「void」とは「この関数は結果をどこにも報告しない、ということ」と書いてありますが、私の理解では下のAisatu("鈴木");という外部の文字列を受け取りcout<<nに「報告」しているように感じられます。どうか解釈がうまくいきますようにご教授いただけないでしょうか。よろしくお願いします。

質問者が選んだベストアンサー

  • ベストアンサー
  • galluda
  • ベストアンサー率35% (440/1242)
回答No.2

がると申します。 んっと…日本語で書かれると違和感バリバリですねぇ(苦笑 というのは置いといて。 戻り値のvoidのお話しは…そうですねぇ。「return」というものをキーワードにお調べになってみると、なにか腑に落ちるところがあるかもしれません。

zuita88
質問者

お礼

日本語的にやっております。(笑 ご回答有難うございました。returnで調べてみましたら、int型にした時とvoid型にした際「戻り値」のある無いでC(警告)とC++ではエラーなるならないの違いもあることも理解できました。有難うございました。

その他の回答 (1)

  • ham_kamo
  • ベストアンサー率55% (659/1197)
回答No.1

それは「報告」ではなく「出力」しているだけです。 「報告」するという表現もあまり聞かないですが、要はこの関数が戻り値を返さない、ということです。 一般的に「関数」というと中学校でも習うy=f(x)というように、ある値から何かの計算なり処理をして、その結果を返すものです。しかし、C(C++)の場合、処理を行うだけで結果を返さないものもあります。言語によっては値を返すものと返さないもので、「関数」「プロシージャ」等とわけているものありますが、Cの場合は全て関数で、voidというのは「この関数は値を返さない」と言う意味です。

zuita88
質問者

お礼

ご回答ありがとうございます。単に「画面に出力する処理」だから「値を返さない」voidなのですね。ためしにvoid→intに変えて、returnで値をかえす、返さないで試したらコンパイルエラーから理解できました。ありがとうございました。

関連するQ&A