int cube(int)とfloat cube(float)の2つの関数からなる関数のオーバーロードに基づいてプログラムを作成しました。 、「X」変数に代わりに整数値のUEと私は2.5(小数点値)を入れたときに、私の主な機能は、私が代わりに整数VAをfloat値を入れてプログラムを実行するとint型のxとフロートのy respectively.Nowの値を読み取りコンパイラはyの値を求めておらず、自動的にx(int)2とy(float)0.5を返し、0.5の立方体を返します。なぜこれが起こっているのですか?入力を求めるのではなく、yが自動的に0.5に格納されるのはなぜですか?関数のオーバーロードに基づくプログラム
私のプログラムがそのようなものです -
#include<iostream>
using namespace std;
int main()
{
int x;
float y;
int cube(int);
float cube(float);
cout<<"Enter a number to find its cube"<<endl;
cin>>x;
cout<<"The cube of the number "<<x<<" is "<<cube(x)<<endl;
cout<<"Enter a number to find its cube"<<endl;
cin>>y;
cout<<"The cube of the number "<<y<<" is "<<cube(y)<<endl;
return 0;
}
int cube (int num)
{
return num*num*num;
}
float cube (float num)
{
return num*num*num;
}
出力がある -
Enter a number to find its cube 2.5 The cube of number 2 is 8 Enter the number to find its cube The cube of number 0.5 is 0.125
、誰もがあなたがint
値を読みますが、与えることを試みること おかげ
私は質問のタイトルは本当に問題についての手掛かりを与えるものではありません – Simon
テンプレートメソッドを使用することをお勧め。この問題は、初心者の間ではかなり一般的である必要がありますが、私は迅速な検索で二重引用符を見つけることができませんでした。 – Walter