【发布时间】:2017-10-09 01:19:59
【问题描述】:
如果我删除我的函数原型并将函数从底部移动到顶部,一切正常,并且该函数可以接受 float 或 int 作为数据类型。您通常不应该对功能进行原型设计吗?另外,我有点好奇为什么这个功能只有在顶部才有效。我很确定这是一个范围界定问题,但由于某种原因,它超出了我的想象。
#include <iostream>
#include <math.h>
#include <iomanip>
using namespace std;
template <class tyler> // function template
tyler Addition(tyler, tyler); // function prototype
int main()
{
setprecision(2); //limits decimal output to 2 places
int num1, num2;
float num3, num4;
cout << "Enter your first number: \n";
cin >> num1;
cout << "Enter your second number: \n";
cin >> num2;
cout << num1 << " + " << num2 << " = " << Addition(num1, num2);
cout << "Enter your third number: (round 2 decimal places, e.x. 7.65) \n";
cin >> num3;
cout << "Enter your fourth number: (round 2 decimal places, e.x. 7.65 \n";
cin >> num4;
cout << num3 << " + " << num4 << " = " << Addition(num3, num4);
cin.clear(); // Clears the buffer
cin.ignore(numeric_limits<streamsize>::max(), '\n'); // Ignores anything left in buffer
cin.get(); // Asks for an input to stop the CLI from closing.
return 0;
}
tyler Addition(tyler num1, tyler num2)
{
return (num1 + num2);
}
【问题讨论】: