第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);
}
これはどういうことでしょうか。
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がコンソールに表示されます。
返す値を戻り値といいます。結局、関数の型とは戻り値の型です。
では、文字型の関数はどのようになるでしょうか。
VB講義へ
VB講義基礎へ
vc++講義へ第1部へ
初心者のための世界で一番わかりやすいVisual C++入門基礎講座
初心者のための世界で一番わかりやすいVisual Basic入門基礎講座
初心者のための世界で一番わかりやすいVBA入門講義(基礎から応用まで)