- 締切済み
関数呼び出しについて
今cygwin 上でC++の勉強をしているのですが 以下の2つのプログラムの違いがよくわかりません どなたかよろしくお願いします <プログラム1> #include<iostream> using namespace std; int a(); int main(){ cout << abs(); return 0;} int a(){ cout << "test\n"; return 1;} <プログラム2> #include<iostream> using namespace std; int a(int i); int main(){ cout << a(1); return 0;} int a(int i){ cout << "test\n"; return i;} プログラム1では関数a()内の"test"が出力されるのですが プログラム2ではa(int i)内の"test"は出力されません。 この違いはどこにあるのでしょうか? 同じプログラムでint a() と int a(int i)を double a() と double a(double d)にすると この違いは生じません。なぜaの戻り値をint に設定したときだけ この違いが生じるのでしょうか?
- みんなの回答 (1)
- 専門家の回答
みんなの回答
- Gotthold
- ベストアンサー率47% (396/832)
回答No.1
> プログラム1では関数a()内の"test"が出力されるのですが 'abs'という関数がないとコンパイル時にエラーが出ます。 > プログラム2ではa(int i)内の"test"は出力されません。 出力されました。