C++模板2题

预测产量?

null

#include <iostream>
using namespace std;
template < typename T>
void fun( const T&x)
{
static int count = 0;
cout << "x = " << x << " count = " << count << endl;
++count;
return ;
}
int main()
{
fun< int > (1);
cout << endl;
fun< int >(1);
cout << endl;
fun< double >(1.1);
cout << endl;
return 0;
}


(A)

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实例被调用了两次,所以第二次调用的count是递增的。 这个问题的小测验

© 版权声明
THE END
喜欢就支持一下吧
点赞6 分享