ページ 11

C++の質問です

Posted: 2010年10月18日(月) 22:57
by 眠い人
C++のプログラムの勉強をしていてわからない所があるので教えていただけませんでしょうか?
プログラムはこれです。

#include<iostream>
using namespace std;

//西暦を昭和に変換します。
//変な値が渡されたら場合は 0 を返します。

int WesternToShouwa (int western) {
if (1926 <= western && western <=1989) {
return western - 1925;
} else {
return 0;
}
}

void Shouwa() {
int western;

cout << "西暦を入力してください > " <<flush;
cin >> western;

int shouwa = WesternToShouwa (western);
if (shouwa == 0) {
cout << "その年は昭和ではありません。" << endl;
} else {
cout << "その年は昭和 " << shouwa << " 年です。" << endl;
}
}

int main() {
Shouwa();
Shouwa();
}
             この中です↓
のint WesternToShouwa →(int western)← {
がどういう意味なのかわかりません。
int ○○○()の()の中はどのようなときに使うのか?あるいはどのようなものを書くのでしょうか? 画像

Re:C++の質問です

Posted: 2010年10月18日(月) 23:27
by シエル
WesternToShouwa関数に値を渡すときに使います。

cin >> western;
でwesternっていう変数に値を入力させて、その値を
WesternToShouwa (western);
でこの関数に渡してます。

渡された値は、
int WesternToShouwa (int western) {
if (1926 <= western && western <=1989) {
return western - 1925;
} else {
return 0;
}
}
の関数の中でwesternとして処理されるわけです。

Re:C++の質問です

Posted: 2010年10月18日(月) 23:41
by 眠い人
cin >> western; でwesternに値を入れて(たとえば1950で)
WesternToShouwa (western); の部分すべてが1950になっていると考えて問題ないでしょうか?

それとも
int WesternToShouwa (int western) {

int WesternToShouwa (int 1950) {
ということでしょうか?
すみません混乱してきました・・。;;

Re:C++の質問です

Posted: 2010年10月18日(月) 23:56
by シエル
今回の場合は値渡しなので、1950という値を渡していると思ってもらってもいいです。

で、その渡された値は、

int WesternToShouwa (int western) {
if (1926 <= western && western <=1989) {
return western - 1925;
} else {
return 0;
}
}

この関数の中でwestern変数に値がコピーされ、westernという名前で処理されるわけです。
westernという変数がそのまま数字に置き換えられて処理されると思ってもらっていいです。

ですが、参照渡しとかポインタを渡すようになってくるとまた話が違ってくるので、
その場合はまた質問して下さい。 画像

Re:C++の質問です

Posted: 2010年10月18日(月) 23:58
by MNS
WesternToShouwa (1950);
こう渡したのなら、
int WesternToShouwa () {
int western = 1950;
if (1926 <= western && western <=1989) {
return western - 1925;
} else {
return 0;
}
}
こういうことです。

Re:C++の質問です

Posted: 2010年10月19日(火) 00:00
by 眠い人
はい、ありがとうございます^^
またわからない所があったらよろしくお願いします。





解決を押し忘れたので編集しました^^; 画像