• 締切済み

関数呼び出しについて

今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 に設定したときだけ この違いが生じるのでしょうか?

みんなの回答

  • Gotthold
  • ベストアンサー率47% (396/832)
回答No.1

> プログラム1では関数a()内の"test"が出力されるのですが 'abs'という関数がないとコンパイル時にエラーが出ます。 > プログラム2ではa(int i)内の"test"は出力されません。 出力されました。

関連するQ&A