预测输出?
#include
using namespace std;
template
void fun(const T&x)
{
static int count = 0;
cout << "x = " << x << " count = " << count << endl;
++count;
return;
}
int main()
{
fun (1);
cout << endl;
fun(1);
cout << endl;
fun(1.1);
cout << endl;
return 0;
}
(一种)
x = 1 count = 0
x = 1 count = 1
x = 1.1 count = 0
(B)
x = 1 count = 0
x = 1 count = 0
x = 1.1 count = 0
(C)
x = 1 count = 0
x = 1 count = 1
x = 1.1 count = 2
(D)编译器错误答案: (A)
说明:编译器为每种数据类型创建一个模板函数的新实例。因此,在上面的示例中,编译器创建了两个函数,一个用于int,另一个用于double。每个实例都有自己的静态变量副本。函数的int实例被调用两次,因此第二次调用的计数增加。
这个问题的测验
想要从精选的最佳视频中学习和练习问题,请查看《基础知识到高级C的C基础课程》。