第8講 関数の学習その2  
第5話 関数の型

第2講で、関数には型がある申し上げました。
関数の型があるってどういうことなの?
と思いませんでしたか。
void型はわかるにしても、
int型とstring型とはどういうことでしょうか。
試しに、次のコードにしてみてください。
#include<iostream>
using namespace std;
using namespace System;
int f();
int g();
int main(){
   f();
   g();
}
int f(){
   int i;
   i=2;
   cout<<i<<endl;
}
int g(){
   int i;
   i=3;
   cout<<i<<endl;
}
これでビルドすると

エラー 1 error C4716: 'f' : 値を返さなければいけません c:\vc++2010\d6\g\g\a.cpp 14
エラー 2 error C4716: 'g' : 値を返さなければいけません c:\vc++2010\d6\g\g\a.cpp 19

と出てきます。値を返す?
そうなんです。関数は、値を返さなければならない。
この返す値の型がint型です。
関数の型とは、結局返す値の型なのです。

返すには、returnを使います。例えば、次のように変更してください。
#include<iostream>
using namespace std;
using namespace System;
int f();
int g();
int main(){
   f();
   g();
}
int f(){
   int i;
   i=2;
   cout<<i<<endl;
   return(i);
}
int g(){
   int i;
   i=3;
   cout<<i<<endl;
   return(i);
}
入門
エラーは解消されましたが、値を返したことが何の意味も持っていません。
そこで、さらに次のようにコードを変更します。
#include<iostream>
using namespace std;
using namespace System;
int f();
int g();
int main(){
   cout<<f()<<endl;
   cout<<g()<<endl;
}
int f(){
   int i;
   i=2;
   cout<<i<<endl;
   return(i);
}
int g(){
   int i;
   i=3;
   cout<<i<<endl;
   return(i);
}

C言語
これはどういうことでしょうか。
2が立て続けに2回、3が立て続けに2回表示されてしまいました。
#include<iostream>
using namespace std;
using namespace System;
int f();
int g();
int main(){
   cout<<f()<<endl;  //2番目の2の表示②
   cout<<g()<<endl;  //2番目の2の表示④
}
int f(){
   int i;
   i=2;
   cout<<i<<endl;  //最初の2の表示①
   return(i);
}
int g(){
   int i;
   i=3;
   cout<<i<<endl;  //最初の3の表示③
   return(i);
}
丸数字は、命令が実行される順番です。

1回だけ表示させたいなら
#include<iostream>
using namespace std;
using namespace System;
int f();
int g();
int main(){
   cout<<f()<<endl;  
   cout<<g()<<endl;  
}
int f(){
   int i;
   i=2;
   return(i);
}
int g(){
   int i;
   i=3;
   return(i);
}

でよいのです。実際
初心者ですね。
これは、
#include<iostream>
using namespace std;
using namespace System;
int f();
int g();
int main(){
   cout<<f()<<endl;  
   cout<<g()<<endl;  
}
int f(){
   return(2);
}
int g(){
   return(3);
}
でも同じになります。

基礎
関数fの仕事は、整数2を返すこと、関数gの仕事は整数3を返すことです。
   cout<<f()<<endl;  
では返された値2がコンソールに表示され
   cout<<g()<<endl;  
では返された値3がコンソールに表示されます。

返す値を戻り値といいます。結局、関数の型とは戻り値の型です。
では、文字型の関数はどのようになるでしょうか。




第4話へ 第6話へ


戻る


VB講義へ
VB講義基礎へ

vc++講義へ第1部へ
初心者のための世界で一番わかりやすいVisual C++入門基礎講座
初心者のための世界で一番わかりやすいVisual Basic入門基礎講座
初心者のための世界で一番わかりやすいVBA入門講義(基礎から応用まで)